我的應用程序有一個ViewController,即在應用程序啓動時打開的第一個屏幕。我通過mainstoryboard嚮應用程序添加了一個UITabBarController。我將UITabBarController的標題更改爲「myTabBarController」。現在我該如何從已經存在的ViewController的viewDidLoad函數中訪問這個TabBarController?從swift代碼訪問UITabBarController
回答
在AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyboard.instantiateViewControllerWithIdentifier("myTabBarController") as! myTabBarController
self.window!.rootViewController = main
self.window!.makeKeyAndVisible()
return true
}
你應該設置myTabBarController的標識在Main.storyboard。
驚訝!如果你想從視圖控制器的viewDidLoad函數加載UITabBarController,你爲什麼需要視圖控制器? 但是解決方案可以是這樣的: 您可以使segue:右鍵單擊視圖控制器,然後拖動到tabBarController並選擇segue「show」。
但是,如果您將UITabBarController嵌入到在應用程序開始時加載TabBarController的視圖控制器中,那麼效果會更好。 1:選擇視圖控制器 2:在Xcode 3的菜單欄轉到[編輯]:選擇嵌入在 4:選擇標籤欄控制器
和你做:)
其他的解決辦法是: 從故事板中刪除ViewController 選擇您添加的tabBarController。 轉到左側窗格中的ViewController的「屬性檢查器」,選擇「是最初的視圖控制器」
ADDED 1.給標識符TabBarController像由張家齊 2.添加按鈕,在視圖控制器給出,使行動吧類(做動作右鍵單擊添加按鈕並拖動到的ViewController類,並選擇行動,而不是出口。) 3.現在在操作添加以下代碼:
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewControllerWithIdentifier("myTabBarController") //vc is instance of TabBarController.
self.presentViewController(vc, animated: true, completion: nil)
DONE :)
實際上,我需要在實際呈現TabBarController之前從當前ViewController - 。viewDidLoad進行一些預處理,因此我確實希望保留當前的viewcontroller。 –
SEE在回答中添加了以上部分:您可以這樣做。 – Dari
太棒了,這個工程..謝謝達裏和下面的用戶。我如何選擇這個作爲正確的答案,我沒有足夠的特權來投票這個職位。 –
- 1. 任何代碼如何從uitabbarcontroller訪問viewcontroller的代碼示例?
- 2. 從UIVIewController訪問UITabBarController
- 3. Swift通過UITabBarController訪問viewController的函數
- 4. 在Swift 3中訪問代碼錯誤
- 5. 無法訪問從代碼
- 6. 從代碼訪問網站
- 7. UITableView - 從ViewWillAppear訪問代碼
- 8. 如何從Objective-C代碼訪問Swift類級枚舉
- 9. 從今日小工具訪問Swift代碼
- 10. Swift代碼語法問題
- 11. 從Swift訪問C++枚舉
- 12. Swift從UIDatePicker訪問年份
- 13. Starting Tab - UITabBarController Swift iOS
- 14. 訪問SQL代碼
- 15. 訪問CakePHP代碼
- 16. 訪問代碼流
- 17. 從Storyboard創建Swift代碼
- 18. Segue目前從Appdelegate到UITabBarController在swift中
- 19. 從app.config BasicHttpBinding代碼無法訪問
- 20. 訪問雙緩衝從本地代碼
- 21. 從代碼訪問div元素
- 22. 從C#代碼中訪問F#映射
- 23. 如何從C代碼訪問Ruby AST?
- 24. 從iPhone代碼訪問相冊
- 25. flex 3從actionscript代碼訪問主mxml
- 26. 從適配器Java代碼訪問UserIdentity
- 27. WordPress:從Widget代碼訪問數據庫
- 28. 如何從java代碼訪問applet?
- 29. 從代碼隱藏訪問asp:Tablerow風格
- 30. 從java代碼中訪問Apache的unique_id
如何在Main.storyboard中設置myTabBarController的標識符?我將標題設置爲「myTabBarController」...哪些窗口具有此設置?謝謝 –
你可以看到圖像的右側。 –
對不起,我是Swift/iOS編程的新手,當我將上面發佈的代碼添加到AppDelegate.swift時,TabBarController會在App啓動後立即打開,但這不是我想要的。我只想在Button按鈕上顯示TabBarController。我怎樣才能做到這一點? –