将 NavigationController 添加到当前视图

Posted

技术标签:

【中文标题】将 NavigationController 添加到当前视图【英文标题】:Add NavigationController to current view 【发布时间】:2012-09-13 18:28:35 【问题描述】:

我正在使用 UIScrollView 显示一些图像,当用户选择图像的一部分时,我需要呈现或推送另一个视图。此 ScrollView 仅以编程方式创建。 我如何以编程方式向它添加一个 navigationController 并呈现另一个视图?

我试过这种方式,但只给我以下错误:

不支持推送导航控制器'

 StatesViewController * controller = [[StatesViewController alloc]initWithNibName:@"StatesViewController" bundle:nil];

    UINavigationController * Navcontroller = [[UINavigationController alloc] initWithRootViewController:controller];

    [self presentModalViewController: Navcontroller animated: YES];

【问题讨论】:

为什么不将 UIScrollView 嵌入到 UINavigationController 中? ScrollView 是以编程方式创建的,我不知道如何对其实现 navigationController 但是UIScrollView 是在什么环境下创建的?肯定它被添加为UIViewController 中已包含的UIView 的子视图,还是被分配为UIViewControllerthe view?只需更改 UIViewController 使其包含在 UINavigationController 中,然后您应该能够将新的视图控制器推送到堆栈上。 (如果您不希望用户看到,您甚至可以在第一个屏幕上隐藏UINavigationController 的导航项。) 【参考方案1】:

这可能会对您有所帮助。

 NextViewController *nextViewController=[[NextViewController alloc]initWithNibName:@"NextViewController" bundle:nil];
    UINavigationController *navBar=[[UINavigationController alloc]initWithRootViewController:nextViewController];
    [self.navigationController presentModalViewController:navBar animated:YES];

【讨论】:

以上是关于将 NavigationController 添加到当前视图的主要内容,如果未能解决你的问题,请参考以下文章