我使用包含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。
希望这个问题有道理,让我知道是否有什么我应该扩展。
答案 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问题之前需要更多咖啡