从UIViewController中解除UITabBArController,然后再次呈现它仍然显示旧数据 - 更新

时间:2013-12-16 04:59:32

标签: ios iphone uiviewcontroller uitabbarcontroller

在我的应用程序中,我有一个UIViewController,其中显示UItabBarControllerNavigationControllerstabBarItemsUITabBarController,然后我从UIViewController中删除tabBarController UIViewControllers

但是当我再次展示时,旧数据仍会显示在NavigationControllers上(我的意思是UITabBarController的{​​{1}}上显示的所有数据仍会显示)。我希望AppDelegate.h再次呈现时与新版本一样好。怎么做??

这是代码: 在@property (strong, nonatomic) UITabBarController *tabBarController; 中,我创建了此属性

self.customerCareNavController = [[UINavigationController alloc] initWithRootViewController:self.custCareVC];
    self.customerCareNavController.title = @"Customer Service";

    self.purchaseOrderNavController = [[UINavigationController alloc] initWithRootViewController:self.POController];
    self.purchaseOrderNavController.title = @"PO";

    self.accAndContactsNavController = [[UINavigationController alloc] initWithRootViewController:self.accAndContactsController];
    self.accAndContactsNavController.title = @"Accounts And Contacts";

    self.tabBarController = [[UITabBarController alloc] init];

self.tabBarController.viewControllers = [NSArray arrayWithObjects:self.customerCareNavController, self.accAndContactsNavController, self.purchaseOrderNavController, nil];

然后,在AppDelegate.m

{{1}}

1 个答案:

答案 0 :(得分:1)

您是否有理由在app委托中执行此操作?如果您从另一个视图控制器呈现标签栏控制器,则应将所有代码放在执行演示的方法中,不要为它或其任何控制器创建属性,只需为局部变量创建属性。呈现控制器将保留对它的引用,因此您不需要。当你解雇它时,它和它的所有内容控制器都将被解除分配。