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

Objective c 如何从子视图导航到其他视图控制器?,objective-c,uinavigationcontroller,pushviewcontroller,addsubview,presentviewcontroller,Objective C,Uinavigationcontroller,Pushviewcontroller,Addsubview,Presentviewcontroller,假设我有一个名为MainPage的视图控制器(这是rootViewController)。 在该视图控制器中,我添加了一个子视图 见下文: FirstPage1=[[FirstPage alloc] initWithNibName:@"FirstPage" bundle:[NSBundle mainBundle]]; [self.view addSubview:FirstPage1.view]; 在该子视图中,我需要导航到下一页 因此,我使用了如下代码中的presentViewControll

假设我有一个名为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];
它在第一次使用时效果很好,但如果我下次调用,我会得到以下错误

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

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

谢谢您的回复!在我的项目中,我将添加ViewController(第一页)作为ViewController(主页)的子视图。我需要知道如何从子视图导航到其他视图。我已经尝试添加presentViewController来导航其他一些viewcontroller。但它适用于第一个周期。如果下次我这样做了,我会出现以下错误:“谁的视图不在窗口层次结构中!”如果您将其作为视图添加到另一个视图中,则必须手动处理视图。将主页改为UINavigationController!然后你可以像我说的那样推/弹出,而不是自己管理视图。你为什么要将
FirstPage1
的视图添加到它本身?我已经有了自己的观点,再次添加自己的观点没有任何意义。。。