TabBarController返回null

Mor*_*ang 6 null objective-c uitabbarcontroller ios

我在故事板中有一个tabbarcontroller作为初始视图控制器

在此输入图像描述

在此输入图像描述

这是如何返回null的

UITabBarController* tabbarController = (UITabBarController*) self.tabBarController;
NSLog(@"%@",tabbarController);
NSLog(@"%@",self.navigationController.tabBarController);
Run Code Online (Sandbox Code Playgroud)

本来就是我想要做的

NSMutableArray *newTabs = [NSMutableArray arrayWithArray:[self.tabBarController viewControllers]];
NSLog(@"\n\n\n%lu\n\n\n",(unsigned long)[newTabs count]);
NSLog(@"self.tabBarController.viewControllers %@ \n\n",self.tabBarController);
[newTabs removeObjectAtIndex: 1];
[self.tabBarController setViewControllers:newTabs];
Run Code Online (Sandbox Code Playgroud)

为什么我会变空?

Leo*_*rdo 6

究其原因,返回null,是self为你的UITabBarController,因此,它不会对任何东西self.tabBarController

您的代码应如下所示:

NSMutableArray *newTabs = [NSMutableArray arrayWithArray:[self viewControllers]];
NSLog(@"\n\n\n%lu\n\n\n",(unsigned long)[newTabs count]);
NSLog(@"self.viewControllers %@ \n\n",self);
[newTabs removeObjectAtIndex: 1];
[self setViewControllers:newTabs];
Run Code Online (Sandbox Code Playgroud)