たまたま、戻るボタンを押すようなものNSTimer
から離れているときに、まだ発火していることに気付きました。ViewController
その特定を終了する適切な方法は何NSTimer
ですか?
2252 次
4 に答える
4
viewDidDisappear イベントで処理できます。
-(void)viewDidDisappear:(BOOL)animated {
[myTimer invalidate];
}
于 2012-09-20T04:50:54.583 に答える
0
これは私があなたの質問から理解したことです:
別のViewControllerに移動しているときにタイマーを無効にしますか?
だからこれを試してみてください:
YourViewController *objController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
[self.navigationController pushViewController:objController animated:YES];
[timer invalidate]; //your timer object goes here
編集:
または、ViewConrtollerをポップアップする/ viewContollerを閉じる場合は、
[timer invalidate];
そのコードのブロックを確認します。
于 2012-09-20T05:03:11.510 に答える
0
ビューコントローラーをポップしているときにイベントを発生させることができるカスタムナビゲーションコントローラークラスを作成することをお勧めします。
#import "customNavigationController.h"
#import "SettingsTableController.h"
@implementation customNavigationController
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
if([[self.viewControllers lastObject] class] == [SettingsTableController class]){
[[(SettingsTableController *)[self.viewControllers lastObject] timer] invalidate];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 1.00];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown
forView:self.view cache:NO];
UIViewController *viewController = [super popViewControllerAnimated:NO];
[UIView commitAnimations];
return viewController;
} else {
return [super popViewControllerAnimated:animated];
}
}
@end
ここで、 SettingsTableController は NSTimer を持つクラスであるため、タイマーを無効にすることができます。これは、モーダルビューを表示したり、View Controller をプッシュしたりしているときにタイマーを無効にしないようにするのに役立ちます。
詳細http://www.hanspinckaers.com/custom-action-on-back-button-uinavigationcontroller
于 2012-09-20T05:15:22.983 に答える
0
このメソッドを使用して終了することができますNSTimer
-
[timer invalidate]; //timer is your NSTimer
あなたはこのようにすることができinvalidate
ますtimer
-
1.方法
-(void)viewWillDisappear:(BOOL)animated
{
[timer invalidate];
}
2.方法
-(void)viewDidDisappear:(BOOL)animated
{
[timer invalidate];
}
于 2012-09-20T04:51:59.893 に答える