我只是在学习IOS开发,我想在ViewController之间传递数据。我正在使用Storyboard,并且正在使用“ prepareForSegue”方法。
我的主要问题是我在许多论坛和博客中发现的有关这种信息“传播”的模式。当原始控制器需要将数据传递到目标控制器时,原始控制器使用以下代码访问目标控制器:
[segue destinationViewController]
很好,原始控制器不需要确切知道目标控制器的详细信息(我正在使用协议)。
但是,当目标控制器是NavigationController(嵌入在NavigationController中的ViewController)时,似乎推荐的做法是:
[[segue destinationViewController] topViewController]
但是,如果这样做,则意味着原始控制器必须知道目标控制器是NavigationController。我想避免这种情况吗?
也许我做错了什么?还有另一种方法吗?
源控制器是“详细页面”(来自TableView),目标控制器是“编辑页面”。
欢迎任何帮助。
谢谢
我看到两种可能性:
-isKindOfClass
并检查它是否是UINavigationController
-rootViewController
方法的协议,创建符合协议的两个类别,一个类别UIViewController
,另一个类别UINavigationController
,同时实现这两个类别,一个类别UIViewController
应返回self
,一个类别UINavigationController
应返回topViewController
。现在,您可以将这些类别拖放到任何控制器上,并使用[[segue destinationViewController] rootViewController]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句