popviewcontroller什么都不做,不起作用

时间:2012-09-05 16:51:47

标签: objective-c ios5 uipopovercontroller back-button xcode4.4

我正在尝试使用popoverviewcontroller返回ViewController,但没有任何反应。
首先,我正在使用以下代码加载AppDelegate中的第一个ViewController:

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.welcomeMenu];
nav.navigationBarHidden = YES;
self.window.rootViewController = nav;
nav = nil;

导航栏被隐藏,因为我需要这样的方式 在这个ViewController中,我正在显示一个带按钮的菜单,然后,为了显示另一个ViewController,我正在使用这段代码:

SecondViewController *secView = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController:secView animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
secView = nil;

并且SecondViewController加载(但旋转不起作用)...
我的SecondViewController在代码中添加了一个SplitViewController(左边是Table的NavigationController,右边是另一个表的另一个NavigationController)
然后,在SecondViewController中,我手动添加一个按钮返回,使用以下代码:

[self.navigationController popViewControllerAnimated:NO];

但没有任何反应...... 当我打印self.navigationController时,输出是(null),所以我猜这是问题,但为什么我的self.navigationController为null?我需要做些什么才能正确弹出? 如果我没有在AppDelegate代码中隐藏navigationBar,那么出现的backButton会自动正常工作,但是当我想手动执行时,它不起作用......

2 个答案:

答案 0 :(得分:2)

您无法从SecondViewController加载拆分视图控制器。

请参阅Split View Controllers

  

拆分视图控制器必须始终是您所有接口的根   创建。换句话说,您必须始终从a安装视图   UISplitViewController对象作为应用程序的根视图   窗口。然后可以包含拆分视图界面的窗格   导航控制器,标签栏控制器或任何其他类型的视图   你需要控制器来实现你的界面。拆分视图   控制器不能以模态方式呈现。

答案 1 :(得分:0)

您从未将SecondViewController添加到导航控制器的viewControllers,这就是self.navigationController记录为null的原因,因此只需使用新控制器更新viewControllers数组。