【问题标题】:Stuck! can only pass data for presentviewcontroller, not pushviewcontroller卡住!只能为presentviewcontroller传递数据,不能pushviewcontroller
【发布时间】:2016-08-07 16:21:42
【问题描述】:
    let chatController = ChatLogController()
    chatController.user = user
    let nav: UINavigationController = UINavigationController(rootViewController: chatController)
    self.presentViewController(nav, animated: true, completion: nil)

上面的代码有效,我试图在呈现之前将用户传递给下一个视图控制器 但是这不起作用,它在下一个视图控制器中为用户提供 nil:

    let chatController = ChatLogController()
    chatController.user = user
   let nav: UINavigationController = UINavigationController(rootViewController: MessagesController())
   // self.presentViewController(nav, animated: true, completion: nil)
    nav.pushViewController(chatController, animated: true)

我真的不知道为什么,抱歉这些愚蠢的问题,我对此很陌生。

【问题讨论】:

  • 在第二个示例中,您正在实例化一个新的导航控制器,但该控制器并未添加到视图控制器层次结构中。你必须展示它,然后你才能在上面推任何东西。我也不太明白为什么这个MessagesController 是这个导航控制器的根视图控制器。这是什么MessagesController?你真的想用MessagesControllerChatLogController 来展示导航控制器,还是只用ChatLogController
  • 你想改用self.navigationController?.pushViewController(...)吗?

标签: ios swift uinavigationcontroller


【解决方案1】:

如果我没记错的话,你的问题是MessagesController()

试试这个:

let chatController = ChatLogController()
chatController.user = user
let nav: UINavigationController = UINavigationController(rootViewController: chatController)
// self.presentViewController(nav, animated: true, completion: nil)
nav.pushViewController(nav, animated: true)

【讨论】:

    猜你喜欢
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2018-11-17
    • 1970-01-01
    • 2014-07-01
    • 2017-01-31
    相关资源
    最近更新 更多