0

彼の 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]; 動作します。

ご回答ありがとうございます。

4

1 に答える 1

0

IBviewで Popup360 のプロパティのタイプを確認します。UIView彼女がそれをに変更するように設定した場合Clock3D

于 2010-10-07T12:23:35.147 に答える