[英]IOS6 UITabBarController didSelectViewController Event
[英]Subclass UITabBarController in iOS6 with storyboards
我使用iOS 6 ARC和Storyboards开始了一个新项目
我做了一个非常简单的应用,它具有一个Tabbar和2个视图
所以现在我创建了一个TestViewController文件,扩展了UITabBarController并将自定义类放在情节提要中。
现在的问题是,我正在尝试实现一些委托方法,例如
- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;
但是它从来没有这样。 有人可以帮忙吗?
我也注意到,如果将代码放在第一个视图控制器中,则可以正常工作。 似乎第一个视图控制器之前覆盖了TabBarController。 我很困扰。
为了进行更多测试,我在TestViewController.m中添加了一些日志记录:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"%@",self.tabBarController.viewControllers);
}
并且视图控制器为空。
我什至尝试做self.tabBarController.delegate = self;
但是仍然没有解决方案。
TestViewController是您的标签栏控制器,因此您的日志应该只是self.viewControllers,而不是self.tabBarController.viewControllers。 您也不需要添加属性viewControllers,因为您的子类从UITabBarController继承了该属性。 您的委托消息未被调用的原因是由于相同的问题。 您应该使用(在TestViewController中)设置委托:
self.delegate = self;
这是假设您想让TestViewController成为委托,但我不清楚这是否是您想要的。
您是否尝试过在Interface Builder中链接它们? 首先通过@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
将其添加到头文件中@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.