![](/img/trans.png)
[英]Steps in Referencing UITabBarController from StoryBoard to AppDelegate
[英]Referencing TabbarController created from StoryBoard in AppDelegate?
我有一個帶有初始登錄屏幕的標簽欄應用。 tabbarController設置為Storyboard中具有1個VC的初始視圖,該VC中還嵌入了navigationController。
我實例化了一個loginVC,並在AppDelegate中將其設置為rootViewController。 用戶成功從loginVC登錄后,我需要切換到tabbarController。 我會嘗試獲取對tabbarcontroller的引用並將其設置為新的rootviewcontroller嗎? 如果是這樣,我很難弄清楚該怎么做:/
AppDelegate中
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if NSUserDefaults.standardUserDefaults().objectForKey("OAuth") == nil {
self.window = UIWindow(frame:UIScreen.mainScreen().bounds)
var storyboard = UIStoryboard(name: "Main", bundle: nil)
var loginVC = storyboard.instantiateViewControllerWithIdentifier("LOGIN_VC") as LoginVC
self.window?.rootViewController = loginVC
self.window?.makeKeyAndVisible()
}
return true
}
用戶成功登錄后將調用此方法
func dismissLoginVC() {
var tabbarController = self.storyboard?.instantiateViewControllerWithIdentifier("TABBAR") as UITabBarController
self.presentViewController(tabbarController, animated: true, completion: nil)
let appDelegate: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
appDelegate.window?.rootViewController = tabbarController
}
我知道問題在於它只是創建了一個新的tabbarcontroller,而不是引用在Storyboard中設置為initialView的現有tabbarController。 這似乎可行,但導航欄中缺少其他項目。
感謝您指出正確的方向!
我認為您應該更改自己的應用結構。 將標簽欄控制器保留為情節提要中的初始視圖控制器,並在第一個選項卡中以控制器的viewDidAppear方法以模態方式(無動畫顯示)登錄控制器-這將是用戶首先看到的內容。 當您關閉它時,您將回到第一個選項卡中的該控制器。 使用這種方法,您在應用程序委托中不需要任何代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.