2012-01-22 77 views
1

的變化選項卡,我使用了含有UITabViewController作爲初始根視圖一個Storyboard有一個項目設置。其中一個選項卡加載一個NavigationController,然後加載一個自定義視圖控制器類。Xcode的故事板與UITabViewController - 從按鈕

從自定義視圖控制器,我有一個導航欄按鈕,我想觸發返回根UITabViewController到它的第一個索引操作。我已經能夠使用傳統的xib結構,通過將appDelegate類添加到xib並以這種方式將一個方法鏈接到按鈕來完成此操作。

實際上,我希望按鈕來觸發代碼看起來是這樣的:

@implementation AppDelegate 

@synthesize window = _window; 
@synthesize tabBarController=_tabBarController; 

-(IBAction)handleHome:(id)sender{ 
    //How do I send a message to the tabBarController? 
    [self.tabBarController setSelectedIndex:0]; 
} 

是否有可能與故事板的方法來做到這一點?我看着Segue的,但這似乎並不是我想要做的(沒有辦法讓我跟我所看到的根UITabViewController交談)。

我已經得到了handeHome方法使用響應方式被觸發,所以真的所有我需要知道的是如何訪問實例tabViewController在故事板。

希望這個問題是有道理的,讓我知道如果有什麼我應該擴大。

回答

2

爲什麼不直接做在您的自定義視圖控制器?

- (IBAction)handleHome:(id)sender { 
    self.tabBarController.selectedIndex = 0; 
} 

tabBarController屬性內置於UIViewController

+0

啊,謝謝!我更喜歡這種方法。用AppDelegate無需贅述。 – PrairieHippo

1

我想通了。我的代碼引用塊更新到這一點:

@implementation AppDelegate 

@synthesize window = _window; 

-(IBAction)handleHome:(id)sender{ 

    UITabBarController *tabViewController = (UITabBarController *) self.window.rootViewController; 

    [tabViewController setSelectedIndex:0]; 

} 

唉...需要更多的咖啡,詢問有關問題之前,SO