当选择uitabbarcontroller项时,ios将检索

ghi*_*boz 4 objective-c uitabbarcontroller uitabbaritem uitabbar ios

当用户点击tabbaritem进入uitabbarcontroller更改某些内容时,我需要检索..这是我的代码:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    if (item == [tabBarController.tabBar.items objectAtIndex:2]) {
        item.title = @"add shot";
    }
    else
    {
        item.title = @"Race";
    }
}
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

self.tabBarController.tabBar.delegate = self;
Run Code Online (Sandbox Code Playgroud)

我收到一个sigkill ......

什么是正确的解决方案?提前致谢

cho*_*own 6

您的视图控制器是否符合UITabBarDelegate协议?在头文件中:

@interface MyViewController : UIViewController<UITabBarDelegate> {
    // ...
}

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

@end
Run Code Online (Sandbox Code Playgroud)

然后,就这样做:

tabBar.delegate = self;
Run Code Online (Sandbox Code Playgroud)

代替:

self.tabBarController.tabBar.delegate = self;
Run Code Online (Sandbox Code Playgroud)

和:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    //self.tabBarItem.title = @"Title";
}
Run Code Online (Sandbox Code Playgroud)