UIViewController和UITabBarController应用程序 - viewDidLoad只调用一次

时间:2010-11-06 03:08:26

标签: iphone objective-c cocoa-touch uikit uiviewcontroller

我当前的应用程序包含一个带有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方法?

也是为了记录。我不能感谢所有人,这有助于回答我以前的问题。它真的有帮助,我很感激。

由于

2 个答案:

答案 0 :(得分:4)

也许尝试使用-(void)viewWillAppear:(BOOL)animated {...}代替viewDidLoad?

答案 1 :(得分:1)

每次视图viewDidLoad时,

init只会被调用一次。我不确定执行loginController.view = nil是否会导致视图被卸载,但我认为它应该有效,所以下次访问view属性时,视图将再次加载。