刚学IOS开发,想在ViewController之间传递数据。我正在使用 Storyboard 和“prepareForSegue”方法。
我的主要问题是关于我在许多论坛和博客中发现的有关这种信息“传输”的模式。当源 Controller 需要将数据传递给目标 Controller 时,源 Controller 使用以下代码访问目标 Controller :
[segue destinationViewController]
这很好,源 Controller 不需要确切地知道目标 Controller 的详细信息(我正在使用协议(protocol))。
但是当目标 Controller 是一个NavigationController(一个嵌入在NavigationController中的ViewController)时,似乎推荐的做法是:
[[segue destinationViewController] topViewController]
但如果我这样做,则意味着源 Controller 必须知道目标 Controller 是一个 NavigationController。如果可能,我想避免这种情况?
也许我做错了什么?还有其他方法吗?
源 Controller 是“详细信息页面”(来自 TableView),目标 Controller 是“编辑页面”。
欢迎任何帮助。
谢谢
最佳答案
UINavigationController *navTmp = segue.destinationViewController;
YourController * xx = ((YourController *)[navTmp topViewController]);
xx.param = value;
关于iOS : passing data between viewController (destination embedded in a NavigationController),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101642/