在我的应用程序中,我有一个UIViewController
,其中显示UItabBarController
(NavigationControllers
为tabBarItems
为UITabBarController
,然后我从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}}
答案 0 :(得分:1)
您是否有理由在app委托中执行此操作?如果您从另一个视图控制器呈现标签栏控制器,则应将所有代码放在执行演示的方法中,不要为它或其任何控制器创建属性,只需为局部变量创建属性。呈现控制器将保留对它的引用,因此您不需要。当你解雇它时,它和它的所有内容控制器都将被解除分配。