在ARC iOS应用程序中完全卸载UIViewController

问题描述:

我正在使用Facebook iOS SDK来让用户进行身份验证,当他们注销并重新登录时,主视图控制器(具有注销按钮的状态)处于与他们离开时相同的状态。在ARC iOS应用程序中完全卸载UIViewController

如何从内存中完全删除视图控制器,以便每次重新登录时,都会调用视图控制器的viewDidLoad方法,并重新初始化视图控制器。

+3

'self.loginViewController = nil;' – 2013-05-11 19:12:23

+0

不行,试过了。 – barndog 2013-05-11 19:29:40

当每次需要释放所有引用时完成它。

当您需要再次显示时,创建并使用新的实例。这是确保每当需要时调用viewDidLoad的唯一方法。

或者如果你想不断重复使用同一个,添加一个restart方法(或类似的东西)。此方法的实现可以将UI重置为您需要的任何开始状态。或者你可以把这个逻辑放在viewWillAppear:方法中。这取决于viewWillAppear:是否因推送和弹出其他视图控制器而被调用。

+1

实际上,将控制器的'view'设置为'nil'应该确保'viewDidLoad'在下次访问'view'时被调用。 – Sulthan 2013-05-11 19:33:36

+0

@Sulthan好点。但我个人并不认为这是重用视图控制器的最佳方式。 – rmaddy 2013-05-11 19:36:26

+0

@rmaddy我不反对,但你的回答有点不正确。 – Sulthan 2013-05-11 20:28:49