gpt4 book ai didi

ios - UITabBarControllerDelegate - 不为委托(delegate)触发的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:18:21 29 4
gpt4 key购买 nike

我有一个带有 4 个选项卡的 tabbarcontroller。当用户选择其中一个选项卡时,我想为新的 View Controller 做一些设置 - 即 ...[newVC.databaseid= self.datbaseid];

我已经为他的 tabviewcontroller 设置了 Controller ,因为它是 viewdidload 中的委托(delegate)。但是我尝试使用 3 种方法,但似乎只有一种方法有效。

-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 

会开火,

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

- 似乎没有开火。这是我需要用来设置我新展示的 VC 的那个。

只是为了看看会发生什么,我尝试使用 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

这似乎也没有触发(我返回 NO 并且没有任何区别,也没有使用 NSLog() 记录任何内容;

如果这些方法中没有一个被触发,我想我会设置错误的委托(delegate),但是一个方法确实触发了,但两个没有。有什么想法吗?

我已经使用 Storyboard设置了 tabbarcontroller。

-(void) tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
NSLog(@"item selected");
//THIS DOES GET LOGGED
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"new VC");
//this does not get logged
}

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
return NO;
//this doesnt stop any views being presented
}

最佳答案

我发现了我的问题 - 我是我的错。我做了一些愚蠢的事情。我在类中设置了 self.tabbarcontroller.delegate = self 的委托(delegate),该类是 tabbarcontroller 的 Controller ,将其更改为 self.delegate = self;已经解决了这个问题。相当愚蠢的错误!奇怪的是第一种方法实际上是如何工作的,但是嘿!

关于ios - UITabBarControllerDelegate - 不为委托(delegate)触发的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15302426/

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