簡體   English   中英

使用storyboard時如何在其viewController中獲取tabBarController?

[英]How to get tabBarController in one of its viewController when using storyboard?

我使用故事板模板制作選項卡式應用程序 ,嵌入了兩個視圖控制器。

這就是我想要做的: 在第一個viewController中,讓TabBar以編程方式選擇第二個viewController。

第一個viewController是一個tableViewController,顯示了一個項目列表,每個項目都將推送到detailViewController。 在detailViewController中,我編輯一些信息並保存項目。 然后我希望app顯示第二個ViewController,這是一個tableViewController顯示保存的項目。

通常,我們可以使用[TabBarController setSelectedIndex:1]; 選擇第二個viewController。

但是,由於這是一個故事板模板應用程序,因此隱藏了許多代碼。 所以我無法在第一個viewController中獲取TabBar實例,並使用setSelectedIndex方法。

這讓我很困惑......

現在,我找到了解決這個問題的方法。 我的答案如下。

我已經想出如何解決這個問題。

首先,我添加一個新類: MyTabBarController

然后,在storyboard中 ,選擇標簽檢查器面板中的標簽欄控制器,將自定義類設置為此新類。

對於第一個viewController類,添加一個屬性

@property (nonatomic, weak) UITabBarController *tabBarController;

然后在MyTabBarController類中添加- (void)viewDidAppear:(BOOL)animated

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    UINavigationController *navigationController = [self.viewControllers objectAtIndex:0];
    FirstViewController *firstViewController = (FirstViewController *)navigationController.topViewController;
    firstViewController.tabBarController = self;

這樣,我將tabBarController實例傳遞給firstViewController,因此,在firstViewController中,我可以調用[tabBarController setSelectedIndex:1]; tabBarController [tabBarController setSelectedIndex:1];

故事板為我提供了一個可視化界面,然而,它隱藏了很多東西。

暫無
暫無

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

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