带有UITabViewController的Xcode Storyboard - 从按钮更改选项卡

时间:2012-01-22 16:12:01

标签: ios uitabbarcontroller xcode4.2 storyboard

我使用包含UITabViewController作为初始根视图的Storyboard进行项目设置。其中一个选项卡加载一个NavigationController,后者又加载一个自定义视图控制器类。

从自定义视图控制器,我有一个导航栏按钮,我想触发一个动作,将根UITabViewController返回到它的第一个索引。通过将appDelegate类添加到xib并将方法链接到按钮,我已经能够使用传统的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];
}

是否可以使用Storyboard方法执行此操作?我看了Segue的,但这似乎不是我想做的事情(我无法从根据我所见的根UITabViewController进行交流。)

我已经使用Responder方法触发了handeHome方法,所以我真正需要知道的是如何在Storyboard中访问实例化的tabViewController。

希望这个问题有道理,让我知道是否有什么我应该扩展。

2 个答案:

答案 0 :(得分:2)

为什么不在自定义视图控制器中执行此操作?

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

tabBarController属性内置于UIViewController

答案 1 :(得分:1)

我明白了。我将引用的代码块更新为:

@implementation AppDelegate

@synthesize window = _window;

-(IBAction)handleHome:(id)sender{

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

    [tabViewController setSelectedIndex:0];

}

叹息......在提出SO问题之前需要更多咖啡