誰かがナビゲーションバーのrightBarButtonItemをタップして、プログラムがクラッシュするのをすばやくもう一度タップすると、問題が発生します。新しいビューの読み込みがまだ完了しておらず、ボタンがまだ表示されているためにクラッシュするのは理解できます。そのため、ビューをもう一度押してプログラムをクラッシュさせようとします。私はこれを防ぐためにいくつかの方法を試しましたが、現在の実装はある程度機能しますが、より良い解決策、おそらくフレームワークに組み込まれた解決策があることを知っていますか?
- (void) loadView
{
[super loadView];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]
initWithTitle:@"Members"
style:UIBarButtonItemStylePlain
target:self
action:@selector(showRoster)] autorelease];
}
-(void) showRoster {
if (seconds + 3 < [[NSDate date] timeIntervalSince1970]) { //This is where I am trying to prevent the button from being activated twice.
seconds = [[NSDate date] timeIntervalSince1970];
vcRoster = [[RosterDataViewController alloc] init];
vcRoster.rosterDataModel.group_id = self.tweetsByGroupIdModel.group_id;
[self.navigationController pushViewController:vcRoster animated:YES];
}
}
私もこれを試しましたが、私が思っていることをしていません。
if (!self.navigationController.isBeingPresented)
私は問題を解決し、答えへの道をグーグルで調べようとしましたが、この問題に対する良い解決策をまだ見つけていません。私は上記が物事を行うための良い方法ではないことを知っています。私はIOSの世界に非常に慣れていないので、改善のための提案を受け入れることができます。助けてくれてありがとう。