我有一个像这样的全屏modalView:
PreferencesController *nextWindow = [[[PreferencesController alloc] initWithNibName:@"Preferences" bundle:nil] autorelease];
UINavigationController* navController = [[[UINavigationController alloc] initWithRootViewController:nextWindow] autorelease];
[self presentModalViewController:navController animated:YES];
然后从这个modalView我推出另一个视图:
MyController *nextWindow = [[[MyController alloc] initWithNibName:@"tmp" bundle:nil] autorelease];
[self.navigationController pushViewController:nextWindow animated:YES];
在这个新控制器中,我有这个viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Borders";
self.navigationController.navigationBarHidden = NO;
}
leftBarButtonItem未激活,我的意思是触摸它不会突出显示它,也不会返回到上一个视图。
我的视图显示为fullScreen,在应用程序初始化时调用[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
。
navigationBar框架为0,0,320,44 navigationBar超级视图框架为0,0,320,480 viewController视图框架为0,0,320,436。
我试图在viewDidLoad self.navigationController.navigationBar.userInteractionEnabled = YES;
和self.navigationItem.leftBarButtonItem.enabled = YES;
中调用而没有效果。
会发生什么?
编辑:
我的self.navigationController.navigationItem.backBarButtonItem是NIL。
self.navigationController.navigationItem不是NIL
答案 0 :(得分:1)
每当这种反应迟钝发生在我身上时,总是因为框架问题。即NavigationController的superview小于NavigationController的视图。我知道你说所有内容都设置为全屏,但我会通过为层次结构中的每个视图打开“clipsSubviews”来验证所有内容实际上是全屏。
答案 1 :(得分:0)
我刚遇到这个问题,我不知道为什么会这样,但不是这样做:
UIBarButtonItem *backButton =
[[[UIBarButtonItem alloc] initWithTitle:@"Back"
style: UIBarButtonItemStyleBordered
target:nil
action:nil] autorelease];
self.navigationItem.leftBarButtonItem = backButton;
我用
替换了第二行 self.navigationController.navigationItem.leftBarButtonItem = backButton;
这对我有用。
答案 2 :(得分:0)
我找到了解决方案。 问题是第一个视图是从叠加层调用的,而不是从选择器调用的。 将Picker的引用保留到叠加层中,并从中调用视图可以解决问题:
来自叠加层:
[self.picker presentModalViewController:navController animated:YES];
作品
而不是:
[self presentModalViewController:navController animated:YES];