gpt4 book ai didi

ios - 在 iOS6 中使用 Storyboard 子类化 UITabBarController

转载 作者:行者123 更新时间:2023-11-29 03:44:45 24 4
gpt4 key购买 nike

我使用 iOS 6 ARC 和 Storyboards 开始了一个新项目

我制作了一个非常简单的应用程序,有一个选项卡栏和 2 个 View

enter image description here

现在我创建了一个 TestViewController 文件,它扩展了 UITabBarController 并将自定义类放入 Storyboard中。

现在的问题是我正在尝试实现一些委托(delegate)方法,例如

- (BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController;

但它从不调用它。谁能帮忙?

我还注意到,如果我将该代码放入第一个 View Controller 中,它就可以正常工作。看起来第一个 View Controller 之前覆盖了 TabBarController 。我很困惑。

为了进行更多测试,我在 TestViewController.m 中添加了一些日志记录:

- (void)viewDidLoad { 
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"%@",self.tabBarController.viewControllers);
}

并且 View Controller 为空。

我什至尝试这样做 self.tabBarController.delegate = self;

但还是没有解决。

最佳答案

TestViewController 是你的标签栏 Controller ,所以你的日志应该只是 self.viewControllers,而不是 self.tabBarController.viewControllers。您也不需要添加属性 viewControllers,因为您的子类从 UITabBarController 继承了该属性。您的委托(delegate)消息未被调用的原因是由于同样的问题。您应该使用(在 TestViewController 中)设置委托(delegate):

self.delegate = self;

这是假设您希望 TestViewController 成为委托(delegate),我不清楚这是否是您想要的。

关于ios - 在 iOS6 中使用 Storyboard 子类化 UITabBarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17884957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com