将 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 添加到当前视图的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TabBar 添加到基于 NavigationController 的 iPhone 应用程序

以编程方式将 NavigationController 添加到基于 TabBar 的应用程序

如何将导航栏(没有 NavigationController)和搜索栏添加到 TableView

将 UISearchBar 添加到嵌入到 NavigationController IOS6 中的 UICollectionviewController

添加到 NavigationController 时如何释放 ViewController 对象?

MBProgressHUD 添加到 navigationController.view 而不禁用 userInteraction