0

我正在尝试使用 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 (左边的表有一个 NavigationController,右边的另一个表有另一个 NavigationController)
然后,在 SecondViewController 中,我正在使用以下代码手动添加一个返回按钮:

[self.navigationController popViewControllerAnimated:NO];

但是什么也没发生...当我打印 self.navigationController 时,输出为(null),所以我想这是问题所在,但是为什么我的 self.navigationController 为空?我需要做什么才能正确弹出?
如果我不在 AppDelegate 代码中隐藏导航栏,则自动出现的后退按钮可以正常工作,但是当我想手动执行此操作时,将无法正常工作...

4

2 回答 2

2

您不能从您的 SecondViewController 加载拆分视图控制器。

请参阅拆分视图控制器

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

于 2012-09-05T17:12:18.367 回答
0

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

于 2012-09-05T17:00:14.830 回答