我正在嘗試與故事板一起工作。我正在添加標籤欄控制器和3個視圖控制器。在第一個視圖中,我有一個按鈕,然後在該按鈕上點擊我想刪除第三個選項卡,這樣就會出現2個選項卡。動態更改故事板中的標籤欄
我使用下面的代碼刪除最後一個標籤
NSMutableArray *viewControllersCopy = [[self.tabBarController viewControllers] mutableCopy];
[viewControllersCopy removeObjectAtIndex:2];
NSArray *modifiedViewControllers = [[NSArray alloc] initWithArray:viewControllersCopy];
[self.tabBarController setViewControllers:modifiedViewControllers animated:NO];
,但它是通過給錯誤
直接修改的標籤欄控制器管理的標籤欄崩潰不允許
我看過很多鏈接,但無法找到任何正確答案。
感謝frin。
現在我已更新我的代碼以使用導航控制器。以前它是處理查看控制器。 我使用下面的代碼來改變標籤欄
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main_iPhone"
bundle:nil];
UIViewController* vc1 = [sb instantiateViewControllerWithIdentifier:@"ViewController"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc1];
NSMutableArray *viewControllersCopy = [[self.tabBarController viewControllers] mutableCopy];
[viewControllersCopy replaceObjectAtIndex:0 withObject:nav];
NSArray *modifiedViewControllers = [[NSArray alloc] initWithArray:viewControllersCopy];
[self.tabBarController setViewControllers:modifiedViewControllers animated:NO];
它工作正常,但是當我設置標籤欄圖像沒有設置。
如果我使用
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main_iPhone"
bundle:nil];
UIViewController* vc1 = [sb instantiateViewControllerWithIdentifier:@"ViewController"];
NSMutableArray *viewControllersCopy = [[self.tabBarController viewControllers] mutableCopy];
[viewControllersCopy replaceObjectAtIndex:0 withObject:vc1];
NSArray *modifiedViewControllers = [[NSArray alloc] initWithArray:viewControllersCopy];
[self.tabBarController setViewControllers:modifiedViewControllers animated:NO];
然後標籤欄圖像設置,但導航不顯示。
有沒有辦法從故事板直接導航控制器或有任何方式來顯示標籤欄圖像?
https://github.com/mayankpurwar/sample是我的代碼鏈接。
你確定你使用的是最新的Xcode?這段代碼對我來說工作得很好。該錯誤對您發佈的代碼而言似乎不合邏輯,通常在直接修改UITabBarController的tabbar時會出現此錯誤,而不是更改viewcontrollers數組。 – frin
我正在使用最新的xcode。有沒有辦法上傳代碼?我可以上傳我的代碼給你看。 –
我要發送我的代碼鏈接https://github.com/mayankpurwar/sample –