如何操作导航控制器?

Posted

技术标签:

【中文标题】如何操作导航控制器?【英文标题】:How to manipulate Navigation Controller? 【发布时间】:2014-01-26 01:09:42 【问题描述】:

我刚开始学习 xcode,想知道如何将 Navigation Controller 的流程反转?我有 1 个TableViewController 和 1 个ViewController,我希望ViewController 首先出现。请帮忙。

代替:

NavigationController >>> TableViewController >>> ViewController

我想要这样:

NavigationController >>> ViewController >>> TableViewController and back to ViewController

【问题讨论】:

你可以让TableViewController 成为你的ViewController 的孩子,我想如果我能解决你的问题 我会试试的,谢谢!无论如何,如何将数据从 ViewController 的 UITextField 传递到 TableViewController 的静态单元格? 我想您可以通过让您的ViewController 读取该数据,然后将其传递给UITableViewController 并将其交给静态单元格来做到这一点。 好吧,除了默认值之外,我必须再创建一个类,对吧? 这可以通过使用委托模式来完成。定义一个委托并让你的静态单元实现它。 【参考方案1】:

如果情节提要中的视图层次结构如下: a:UITableViewController(A) 嵌入了 UINavigationController。 b:现在 UIViewController(B) 来自 UITableViewController(A)。

    您可以将 A 和 B 的顺序更改为从 B 嵌入 UINavigationController 而不是从 A 嵌入它,现在从 B 调用 A 即。取 UIViewController,然后在其中嵌入 UINavigationController,现在添加 UITableViewController 以从 UIViewConrtroller 推送。

【讨论】:

其实程序运行的时候,必须先从UIViewController开始,顺序必须是:UINavigationController>>>UITableViewController>>>UIViewController 为此,您可以将控制器从 UITableViewController 推送到 ViewDidLoad 或 ViewWillAppear 中的 UIViewController。 哦,谢谢!我也会尝试的。我们的老师告诉我们要找到不同的方法,因为我们是学校的先驱。只是一个简单的问题,它与Unwind Segues 有什么不同? 是的,我们以编程方式执行此操作,而不是使用情节提要的 segues。【参考方案2】:

显示 UITableViewController 实例并跳过 UIViewController 实例:

[self.navigationController setViewControllers:@[myViewController, myTableViewController] animated:YES];

弹出到 UIViewController 实例并跳过 UITableViewController 实例:

[self.navigationController setViewControllers:@[myViewController] animated:YES];

【讨论】:

以上是关于如何操作导航控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 viewControllers 的导航控制器设置自定义 segue 操作

如何向在 tabcontroller 中以编程方式创建的导航控制器中的 barbuttonitem 添加操作

如何将导航控制器添加到 xib

如何在batmanjs中实现导航菜单

iPhone - 如何将导航控制器添加到视图?

如何完全覆盖导航栏的后退按钮操作?