我正在创建一个用户可以登录并注销的应用程序。我检查是否存在已保存的用户(来自早期登录),如果用户已保存,我将该用户登录,然后将窗口的rootviewcontroller更改为登录时应显示的viewcontroller。
// In LoginViewController
let sb = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) // Login viewcontrollers as login, facebook login, register is inside its own storyboard called Login
let vc = sb.instantiateInitialViewController() as MainViewController
let window = UIApplication.sharedApplication().delegate!.window!!
window.rootViewController = vc
但我只是想知道,这有多高效?
这样做会不会正确处理内存?
答案 0 :(得分:1)
它没有做任何特别的事情。它类似于呈现/解除视图控制器。
根视图控制器提供窗口的内容视图。 将视图控制器分配给此属性(以编程方式 或者使用Interface Builder)将视图控制器的视图安装为 窗口的内容视图。如果窗口具有现有视图 层次结构,旧视图在新视图之前被删除 安装。
只要正确处理内存(视图,视图控制器,代理等之间没有保留周期等),它就会正确处理内存。
当然可以使用时间,分配分析工具(@Ian MacDonald suggested)找到详细的数字
关闭主题:对我来说,这是在应用程序的登录/注销状态之间切换的首选方式。我相信这种方法可以简化登录/注销状态之间的屏幕导航:登录后,将root vc更改为数据控制器,忘记登录内容。