我在我的应用程序中使用 SWRevealViewController(以获取滑出侧面板)但是每当用户导航到另一个 viewController(如“设置”)并返回时,一切都会重置。我知道这是 Storyboard的正常行为,因为实例化了一个新的 VC 并且每次都会调用 viewDidLoad。我试图通过将 VC 存储在 AppDelegate 的数组中然后返回到原始 viewController 来解决这个问题,这阻止了在最初重新呈现原始 VC 时调用 viewDidLoad 但我仍然发现它在两者之间移动时随机调用veiwcontroller 的,重置我的所有属性等。在研究中,Apple 文档确实说不要假设 viewDidLoad 只会被调用一次。
在切换选项卡时,这种行为在 UITabBarController 中是否很明显,因为我正在考虑放弃 SWRevealViewController 并使用它来代替它,如果它不会那么令人头疼的话。
我应该以不同的方式处理这个问题吗?将“状态”存储在 NSUserDefaults 中并在 viewDidLoad 上恢复?
提前致谢。
最佳答案
viewDidLoad
仅在 UIViewController
首次加载到内存中时被调用一次。这是您想要实例化任何实例变量并构建在此 UIViewController
的整个生命周期内存在的任何 UIViews
的地方。
在 UITabBarController
中,当您切换选项卡时,UIViewController
的 viewdidLoad
也会被调用一次。
关于ios - viewDidLoad 是否在 UITabBarController 中被多次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292205/