在 UINavigationController 中运行 UIViewController 作为 UISplitViewController 的第二个视图
Posted
技术标签:
【中文标题】在 UINavigationController 中运行 UIViewController 作为 UISplitViewController 的第二个视图【英文标题】:Run UIViewController inside UINavigationController as a second view of UISplitViewController 【发布时间】:2013-08-10 18:41:01 【问题描述】:我在尝试从中访问视图控制器的导航控制器时遇到问题,尽管它显示在导航控制器中,但始终返回为零。 这是我所拥有的(我有一个拆分视图控制器,它作为主控的选项卡控制器和视图控制器(在导航控制器内部)作为细节呈现):
FirstDetailViewController *fdvc = [[FirstDetailViewController alloc] initWithNibName:@"FirstDetailViewController" bundle:nil];
UINavigationController *fdvcNav = [[UINavigationController alloc] initWithRootViewController:fdvc];
NSArray *ipadVCs = [[NSArray alloc] initWithObjects:tabController, fdvcNav, nil];
UISplitViewController *splitvc = [[UISplitViewController alloc] initWithNibName:nil bundle:nil];
[splitvc setViewControllers:ipadVCs];
[[splitvc view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"splitViewControllerBG"]]];
[splitvc setDelegate:fdvc];
[[self window] setRootViewController:splitvc];
[[self window] makeKeyAndVisible];
但是当我尝试使用 [self navigationController] 从 ViewDidLoad 中的 fdvc 视图控制器访问导航控制器时,它总是给我(Null)。 谢谢!
【问题讨论】:
【参考方案1】:我修好了。事实证明,我必须将我的代码从 ViewDidLoad 方法移动到 ViewDidAppear 并且它工作正常。
viewDidLoad 在 navigationController 属性更新之前被调用,这是我的错误。
【讨论】:
感谢您回答您的问题,这对我有帮助。以上是关于在 UINavigationController 中运行 UIViewController 作为 UISplitViewController 的第二个视图的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?
从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController
(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换
关闭 UINavigationController 并呈现另一个 UINavigationController
带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller