如何操作导航控制器?
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 操作