2013-12-16 54 views
1

在我的申請,我有一個UIViewController呈現一個UItabBarController(即具有3 NavigationControllerstabBarItems),然後我從UIViewController駁回UITabBarController解聘的UITabBarController從一個UIViewController,然後再次提交它仍然顯示舊的數據 - 更新

但是,當我再次出現時,舊數據仍然顯示在tabBarController(我的意思是仍然顯示在NavigationControllersUIViewControllers上顯示的所有數據)。我希望UITabBarController在再次呈現時與新的一樣好。這個怎麼做??

下面的代碼: 在AppDelegate.h,我做了這個屬性

@property (strong, nonatomic) UITabBarController *tabBarController; 

然後,在AppDelegate.m

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]; 
+1

之前退出UITabbar彈出所有viewcontroller和調用setNeedtoDisplay會做我猜! – Retro

+1

當你解僱一個控制器時,它應該被釋放。既然看起來你不是,你必須在某個地方有一個強大的指針。您應該在創建標籤欄控制器的地方顯示代碼並顯示它。 – rdelmar

+0

我已更新我的問題並添加了一些代碼。是的,我已經使TabBarController「強大」。我該怎麼辦??將其聲明爲「弱」屬性? – Shradha

回答

1

是否有你的應用程序委託這樣做的一個原因?如果您從另一個視圖控制器呈現標籤欄控制器,則應該將所有代碼放在執行演示的方法中,並且不要爲其創建屬性或其任何控制器,而僅爲局部變量創建屬性。呈現控制器將保留對它的引用,所以你不需要。當你解僱它時,它和它的所有內容控制器將被釋放。

+0

好吧..得到你的觀點..將嘗試重新排列我的代碼並回復給你.. – Shradha

+0

完成..非常感謝..只但還有一個問題.. myTabBArController上的所有圖像現在都消失了.. – Shradha

+0

@ Coder123,什麼圖像?他們何時被添加到標籤欄控制器。 – rdelmar

相關問題