あるタブから別のタブに移動しているとき、タイマーは引き続き実行されます。しかし、私はそのタイマーを止めたいです。
したがって、誰かが知っている場合は、あるタブから別のタブに移動するときにどのメソッドを呼び出す必要があるか教えてください。
最も簡単な答えは
-(void)viewWillDisappear:(BOOL)animated {
//here
}
タブをクリックするたびに、この関数が呼び出され、この関数に記述されたすべてが実行されます
このようにタイマープロセスを停止できます。
if(self.TimeOfActiveUser)
{
[self.TimeOfActiveUser invalidate];
self.TimeOfActiveUser = nil;
}
編集 別のメソッドをプッシュするときにこのメソッドを配置できます。たとえば、6 秒ごとに TableView のデータをリロードするためにタイマーを使用している場合、選択して特定の行をプッシュできます。この 2 行のコードを
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.TimeOfActiveUser invalidate];
self.TimeOfActiveUser = nil;
objScore = [[CntrScore alloc]initWithNibName:@"CntrScore" bundle:nil];
[self.navigationController pushViewController:objScore animated:YES];
}
と
アプリのタブベースの場合、タイマー停止コードを入れますviewWillDisappear
-(void)viewWillDisappear:(BOOL)animated
{
if(self.TimeOfActiveUser)
{
[self.TimeOfActiveUser invalidate];
self.TimeOfActiveUser = nil;
}
}
タブバーのインデックスを確認し、以下に示すコードを記述します。
[yourtimername invalidate];