簡體   English   中英

從我的故事板上的另一個視圖中獲取tabbarcontroller

[英]Get tabbarcontroller from another view on my storyboard

在我的代表中,我正在嘗試選擇我的TabBarController以便我可以使用不同的背景設置它。 但問題是我的TabBarController不在rootView上。

我目前的代碼:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];

在我的界面構建器中,我的TabBarController設置有一個Segue名稱:mainView(這是TabBarController所在的位置)。

我怎么能選擇我的TabBarController

首先,您必須在視圖層次結構中知道TabBarController的位置。 如果它不是您的根控制器,請找到調用TabBarController的UIViewController,並通過segue或類似的東西獲取它的引用。

什么可能為你工作,它的訪問tabBarController在屬性viewDidLoad你tabViewController內標簽的第一個孩子的UIViewController。 tabBarController的所有子ViewControllers都具有此屬性。

例如,假設tabBar中顯示的第一個UIViewController是MyViewController,執行如下操作:

- (void)viewDidLoad
{
   UITabBar *tabBar = self.tabBarController.tabBar;
   UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
   UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; 
}

如果你想從一個視圖中獲取它

//if Custom class
TabBarController *tabBar = (TabBarController *) self.tabBarController;

//if Custom class with Navigation Controller
TabBarController *tabBar = (TabBarController *) self.navigationController.tabBarController;

//if Not Subclassed
UITabBarController *tabBar = (UITabBarController *) self.tabBarController;

//if Not Subclassed with Navigation Controller
UITabBarController *tabBar = (UITabBarController *) self.navigationController.tabBarController;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM