繁体   English   中英

带情节提要的iOS6中的UITabBarController子类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM