[英]iOS refresh tab bar items after selected
我有一個標簽欄,可以瀏覽子屏幕。
選擇選項卡項時,重新啟動選項卡欄項(第一個屏幕)。
因此,基本上當您選擇第一個標簽欄(見上圖)並從tableview中選擇一些內容時,您將被定向到集合視圖(黑屏)。 當您選擇第二個標簽欄項目並返回標簽欄中的第一個項目時,它會從停止的位置繼續(黑色屏幕)。
我如何讓它重新開始?
我試過用這個,
- (void) viewDidLoad{
[self.tabBarController addObserver:self forKeyPath:@"selectedViewController" options:NSKeyValueObservingOptionNew context:@"changedTabbarIndex"]; }
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void
*)context{
[self viewDidAppear:YES]; }
但這只會在第二次點擊時重新加載屏幕。
從我在你的圖像中看到的,你有UINavigationController
作為每個標簽欄項的根視圖控制器,所以你可以做的是在你的UITabBarController中實現以下方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (tabBarController.selectedIndex == YOUR_TAB_INDEX) {
//YOUR_TAB_INDEX is the index of the tab bar item for which you want to show the rootView controller
UINavigationController *navController = (UINavigationController*)viewController;
[navController popToRootViewControllerAnimated:YES]
}
}
這將刪除添加到UINavigationController
所有視圖控制器, UINavigationController
是標簽欄項的根視圖控制器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.