在UITabBarController中是否多次调用viewDidLoad?

Ash*_*h R 5 objective-c uitabbarcontroller viewdidload ios

我在我的应用程序中使用SWRevealViewController(以获得滑出侧面板)但是每当用户导航到另一个viewController(如'settings')并返回时,一切都会重置.我知道这是故事板的正常行为,因为实例化了新VC并且每次调用viewDidLoad.我试图通过将VC存储在AppDelegate中的数组中然后返回到原始的viewController来解决这个问题,这会阻止在最初重新呈现原始VC时调用viewDidLoad,但我仍然发现它在之间移动时被随机调用veiwcontroller's,重置我的所有属性等.在研究中,Apple文档确实说不要假设viewDidLoad只会被调用一次.

在切换标签时,这种行为在UITabBarController中是显而易见的,因为我正在考虑放弃SWRevealViewController并使用它而不是让它不那么头痛.

我应该以不同的方式处理,即.在NSUserDefaults中存储'state'并在viewDidLoad上恢复?

提前致谢.

Tos*_*lji 7

viewDidLoadUIViewController首次加载到内存中时,只调用一次.这是您想要实例化任何实例变量并UIViews在其整个生命周期中构建任何实例变量的地方UIViewController.

UITabBarControllerviewdidLoadUIViewController被调用一次,当你切换标签.