当有人点击导航栏上的 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 世界非常陌生。提前感谢您的帮助。