2010-10-07 60 views
0

我有一個問題,從他的UIViewController訪問視圖方法。 我僅在2周前開始在xcode中編程,我必須修改其他人制作的程序。無法從UIViewController訪問UIView

UIView被拖放到UIViewController的.xib中的界面構建器中,並由方法initWithFrame和drawRect進行初始化。這個視圖包含一個NSTimer,當用戶點擊導航欄的按鈕關閉時我需要停止。

所以我在UIViewController中有一個IBAction,它在按下按鈕關閉時被激活。這個方法應該啓動一個UIView的方法,但它不起作用。 Xcode沒有檢測到錯誤或警告,但UIView的代碼從未運行。當我啓動應用程序時,一切正常,但這。

UIView.h:

@interface Clock3D:UIView的{
...
的NSTimer *定時器;
NSTimer * timerS;
}
...
@property(retain,nonatomic)NSTimer * timer;
@property(retain,nonatomic)NSTimer * timerS;
...
- (void)doneTest;
@end

UIView.m:

@implementation Clock3D
@synthesize定時器,定時器,...
...
- (無效){doneTest

NSLog(@「arret timerS」);
[timerS invalidate];
NSLog(@「arret timer」);
[timer invalidate];

}

UIViewController.h:

進口 「Clock3D.h」

@class Clock3D;

@interface Popup360:{的UIViewController
...
Clock3D * clock3D;
}
...
@property(retain,nonatomic)IBOutlet Clock3D * clock3D; ...
- (IBAction)完成;

@end

的UIViewController。米:

@implementation Popup360
@synthesize ...,clock3D;

- (IBAction)done {
[clock3D doneTest];
[self dismissModalViewControllerAnimated:YES];
}

於是命令[clock3D doneTest]不起作用(從NSLog的doneTest不會出現在日誌),但命令[自dismissModalViewControllerAnimated:YES];作品。

感謝您的回覆。

回答

0

在IB中檢查Popup360的屬性view的類型。如果她設置爲UIView,則將其更改爲。