我当前的应用程序包含一个带有4个不同选项卡和UIViewController的UITabBarController。我的tabBarController是rootController,UIViewController主要用于我的用户登录视图。当应用程序加载时,两个视图都加载了覆盖tabBar的登录视图。
我已经为loginViewController的viewDidLoad方法添加了一些日志记录。我看到这个方法在初始启动时被调用。用户成功登录后,tabBarController视图现在可以查看。我设置了一个从tabBarController注销的操作。此方法将user / pass设置为nil并调用委托方法以再次加载我的loginView。
- (无效)setLoginView
{
[window addSubview:loginController.view];
}
我正在添加一些检查,但没有任何内容被触发,因为viewDidLoad(在loginViewController.m中)永远不会被再次调用。注销时,我的文本字段仍然具有我第一次登录时输入的用户/通行证。因此,我的一项检查是将文本字段重置为nil等。
我可能在这里使用了错误的术语,但无论如何都要“刷新”这个loginController,每次用户注销时都会调用viewDidLoad方法?
也是为了记录。我不能感谢所有人,这有助于回答我以前的问题。它真的有帮助,我很感激。
由于
答案 0 :(得分:4)
也许尝试使用-(void)viewWillAppear:(BOOL)animated {...}
代替viewDidLoad?
答案 1 :(得分:1)
viewDidLoad
时, init
只会被调用一次。我不确定执行loginController.view = nil
是否会导致视图被卸载,但我认为它应该有效,所以下次访问view
属性时,视图将再次加载。