Jam*_*mes 9 cocoa-touch objective-c ios
我的iOS应用程序打开时会显示登录提示.用户登录后,会切换到主视图.
在application:didFinishLaunchingWithOptions中,我将RootViewController设置为LoginViewController.LoginViewController将AppDelegate作为其委托:
LoginViewController *login = [[LoginViewController alloc] init];
[login setDelegate:self];
[[self window] setRootViewController:login];
Run Code Online (Sandbox Code Playgroud)
如果登录成功,LoginViewController将调用AppDelegate的userDidLogin方法:
if([[self delegate] respondsToSelector:@selector(userDidLogin)]) {
[[self delegate] userDidLogin];
}
Run Code Online (Sandbox Code Playgroud)
userDidLogin创建一个新的UINavigationController并将其指定为RootViewController:
- (void)userDidLogin
{
MainRecordViewController *mainRecordViewController = [[MainRecordViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mainRecordViewController];
[[self window] setRootViewController:navController];
}
Run Code Online (Sandbox Code Playgroud)
通过向LoginViewController的dealloc方法添加NSLog,看起来LoginViewController在该阶段被销毁,并且执行按预期继续.
我没有做任何明确关闭LoginViewController的事情,只是假设分配一个新的RootViewController将意味着旧的消失并被ARC整理掉.
我能依靠那种情况吗?这是一种明智的做法吗?
提前致谢.
詹姆士
Mar*_*n R 11
该文件的的rootViewController属性状态:
如果窗口具有现有视图层次结构,则在安装新视图之前将删除旧视图.
因此,如果您不保留自己的引用LoginViewController,它将被销毁.
也许这样:RootViewController Switch Transition Animation对你来说也很有趣,因为它描述了如何用动画切换根视图控制器.
| 归档时间: |
|
| 查看次数: |
3708 次 |
| 最近记录: |