伙计们,我需要ObjectiveC和UITabBarController的帮助。

我有2个具有相同(我希望)功能的代码。但仅适用于第二个。该任务是动态创建viewControllers数组并将其分配给UITabBarController viewControllers属性。

我有从UITabBarController继承的DZCustomTabBarController。

@interface DZCustomTabBarController : UITabBarController

@end


和属性@property (nonatomic, strong) NSMutableArray *controllers;指向我这样动态创建的viewControllers。

一切都在viewDidLoad方法中发生

下面的代码不起作用

NSArray *titles = @[@"first", @"second"];

for (NSString *title in titles) {
    DZViewController *controller = [[DZViewController alloc] init];

    controller.title = title;

    [self.controllers addObject:controller];
}

self.viewControllers = self.controllers ;


我不知道为什么。

但是这段代码有效。

DZViewController *firstViewController = [[DZViewController alloc] init];
firstViewController.title = @"first";

DZViewController *secondViewController = [[DZViewController alloc] init];
secondViewController.title = @"second";

self.viewControllers = @[firstViewController, secondViewController];


我在Objective C方面并不先进,所以需要您的帮助。我认为这行代码[self.controllers addObject:controller];中的问题

最佳答案

我认为,您的controllers属性未初始化使用。在使用插入循环之前,请尝试执行self.controllers = [NSMutableArray array];。祝好运!

关于ios - UITabBarController viewControllers奇怪的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25846059/

10-12 01:23