簡體   English   中英

在uitabbar上禁用/隱藏uitabbaritem

[英]Disable/hide uitabbaritem on an uitabbar

我在這里找到了我認為可以完成此工作的代碼。

`/* suppose we have a UITabBar *myBar, and an int index idx */  
NSMutableArray modifyMe = [[myBar items] mutableCopy];  
[modifyMe removeObjectAtIndex:idx];  
NSArray *newItems = [[NSArray alloc] initWithArray:modifyMe];  
[myBar setItems:newItems animated:true];`

問題是,我應該在哪里編寫此代碼才能工作?
我嘗試將其放在UITabBarController viewDidLoad中,但是它不起作用。

如果要從UITabbarController修改選項卡項,則不能使用setItems:animated: 從文檔:

在iOS 3.0及更高版本中,當標簽欄與標簽欄控制器對象關聯時,您不應嘗試使用此類的方法和屬性來修改標簽欄。 以這種方式修改選項卡欄會引發異常。 相反,對選項卡欄或其項的任何修改都必須通過選項卡欄控制器界面進行。

取而代之的是,換出viewControllers你的財產UITabbarController ,取出UIViewController對應於您要刪除的項目的TabBar。 例如,如果要刪除第二個標簽欄項:

NSMutableArray *newViewControllers = [NSMutableArray arrayWithArray:self.viewControllers];
[newViewControllers removeObjectAtIndex:1];
[self setViewControllers:newViewControllers];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM