的解決方案是UINavigationController的子類,並與使用的UITabBarController的子類。我扔了一些其他有用的功能。
而且它就好做到這一點 - 我的應用程序有5星,沒有人抱怨過:
@implementation MyNavigationController
// This suppresses the normal pop to the root view controller
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
{
return @[];
}
// Extra: give my base classes some notice this is going to happen
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
{
UIViewController *vc = self.topViewController;
if ([vc respondsToSelector:@selector(viewControllerWillBePopped)]) {
[vc performSelector:@selector(viewControllerWillBePopped)];
}
return [super popViewControllerAnimated:animated];
}
// Extra: let the UIViewController refuse to pop
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{
BOOL ret = YES;
UIViewController *vc;
for(UIViewController *obj in self.viewControllers) {
if(obj.navigationItem == item) {
vc = obj;
break;
}
}
if ([vc respondsToSelector:@selector(shouldPop)]) {
NSNumber *retVal = [vc performSelector:@selector(shouldPop)];
ret = [retVal boolValue];
if(!ret) return NO;
}
return [super navigationBar:navigationBar shouldPopItem:item];
}
@end
到ViewController我想再次推?你在任何明星電影中演過戲嗎?像約達可能?只是在開玩笑:請重新表述它不清楚...... – tiguero
實際上你想表演什麼? – Spynet
檢查http://stackoverflow.com/questions/1034803/iphone-uitabbar-item-double-click-pops-controllers – CSmith