彼の UIViewController からビュー メソッドにアクセスするのに問題があります。たった 2 週間前に xcode でプログラミングを始めましたが、他の人が作成したプログラムを変更する必要があります。
UIView は、UIViewController の .xib のインターフェイス ビルダーでドラッグ アンド ドロップされ、メソッド initWithFrame および drawRect によって初期化されます。このビューには、ユーザーがナビゲーション バーの閉じるボタンをクリックしたときに停止する必要がある NSTimer が含まれています。
したがって、ボタンを閉じるとアクティブになる UIViewController に IBAction があります。そして、このメソッドは UIView のメソッドの 1 つを起動する必要がありますが、機能しません。Xcode はエラーや警告を検出しませんが、UIView のコードは実行されません。アプリケーションを起動すると、すべて正常に動作しますが、これは.
UIView.h:
@interface Clock3D : UIView {
...
NSTimer *timer;
NSTimer *timerS;
}
...
@property (retain, nonatomic) NSTimer *timer;
@property (retain, nonatomic) NSTimer *timerS;
...
-(無効) doneTest;
@終わり
UIView.m:
@implementation Clock3D
@synthesize timer, timerS, ...
...
-(void) doneTest{NSLog(@"arret timerS");
[タイマー無効化];
NSLog(@"arret タイマー");
[タイマー無効化];}
UIViewController.h:
「Clock3D.h」をインポート
@classClock3D;
@interface Popup360 : UIViewController {
...
Clock3D *clock3D;
}
...
@property(retain, nonatomic) IBOutlet Clock3D *clock3D; ...
-(IBAction) 完了;@終わり
UIViewController.m:
@implementation Popup360
@synthesize ..., clock3D;-(IBAction) 完了{
[clock3D doneTest];
[自己却下ModalViewControllerAnimated:YES];
}
したがって、コマンド [clock3D doneTest] は機能しません (doneTest からの NSLog はログに表示されません) が、コマンド [self disconnectModalViewControllerAnimated:YES]; 動作します。
ご回答ありがとうございます。