如何从子视图导航到其他视图控制器?

时间:2014-06-18 15:00:35

标签: objective-c uinavigationcontroller pushviewcontroller addsubview presentviewcontroller

假设我有一个名为MainPage的视图控制器(这是rootViewController)。 在该视图控制器中,我添加了一个子视图。

见下文:

FirstPage1=[[FirstPage alloc] initWithNibName:@"FirstPage" bundle:[NSBundle mainBundle]];
[self.view addSubview:FirstPage1.view];

在该子视图中,我需要导航到下一页。

所以我使用了如下代码的presentViewController,但它的效果不佳。

见下面的代码:

[self.view.window.rootViewController presentViewController:AnotherViewController animated:YES completion:nil];

第一次运作良好,但如果我下次打电话,我会收到以下错误。

错误: 其视图不在窗口层次结构中!

1 个答案:

答案 0 :(得分:0)

将单独的视图控制器链接在一起对UINavigationController很有用。只需创建UINavigationController并将其视图添加到您的示例中的self.view。然后,根据需要为每个视图执行[navController pushViewController: animated:]。或者弹出最后一个视图控制器,如果不希望可以访问旧页面,则推送新视图控制器。从您的项目设置方式来看,这是最简单的方法。