作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 iOS 应用程序中有一个包含多个条目的侧边菜单。单击其中之一后,我想通过将它们推送到导航堆栈来转到相应的 View Controller 。目前这是通过以下方式完成的:
// Called on click event on table cell
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.deselectRow(at: indexPath, animated: true)
// navigate to the corresponding view controller
switch(indexPath.row){
case 0:
let launchScreenNC = self.storyboard?.instantiateViewController(withIdentifier: "LaunchScreenNC") as? UINavigationController
self.navigationController?.pushViewController((self.launchScreenNC?.viewControllers.first!)!, animated: true)
break
case 1:
let connectionNC = self.storyboard?.instantiateViewController(withIdentifier: "ConnectNC") as? UINavigationController
self.navigationController?.pushViewController((self.connectionNC?.viewControllers.first!)!, animated: true)
break
case 2:
let syncNC = self.storyboard?.instantiateViewController(withIdentifier: "SyncNC") as? UINavigationController
self.navigationController?.pushViewController((self.syncNC?.viewControllers.first!)!, animated: true)
break
default:
// nothing to do
break
}
}
第一次切换到新的 View Controller 时效果很好。但是,一旦启动,我想让这些实例保持事件状态,以保持与每个 View Controller 关联的变量状态。
执行此操作的最佳方法是什么?
我试过
self.navigationController?.popToViewController((self.syncNC?.viewControllers.first!)!, animated: true)
或者将它们保存为菜单 View Controller 中的实例变量,例如。但到目前为止都没有奏效。
我很感激任何建议。
最佳答案
What is the best way to do this?
最好的方法是不要。一旦 View Controller 弹出,就让它消失。保留其状态(其实例属性的值)并在下次使用它来重建界面;不要保留 View Controller 实例本身。
关于Swift - 通过侧面菜单在它们之间切换时保留实例化的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640344/
我是一名优秀的程序员,十分优秀!