【问题标题】:navigationController.topViewController vs storyboardnavigationController.topViewController 与情节提要
【发布时间】:2015-09-27 21:13:16
【问题描述】:

我正在尝试从我的 appdelegate 中注入对 uitableviewcontroller 中属性的引用。第一个成功 - 我可以从我的 uitableviewcontroller 引用 xmppStream,但第二个似乎在某处破坏了引用,我不知道为什么。

首先 - 好的,uitableviewcontroller 中的 xmppStream 不为零;

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;

PhoneNumberTableViewController *myViewController = (PhoneNumberTableViewController *)navigationController.topViewController;

[myViewController setXmppStream:[self xmppStream]];

第二个 - 获得引用但被销毁,即在 uitableviewcontroller xmppStream 为 nil?

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

PhoneNumberTableViewController *tv = [sb instantiateViewControllerWithIdentifier:@"UserRegistration"];

[tv setXmppStream:[self xmppStream]];

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • instantiateViewControllerWithIdentifier 实例化一个视图控制器,因此得到一个新对象,该对象随后被丢弃,因为不再需要/没有强引用

标签: ios objective-c xmppframework


【解决方案1】:

应该尝试创建PhoneNumberTableViewController 的属性,并且在需要使用时使用该变量。喜欢

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;

_myViewController = (PhoneNumberTableViewController *)navigationController.topViewController;

[myViewController setXmppStream:[self xmppStream]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2013-04-15
    相关资源
    最近更新 更多