Как отключить конкретный элемент вкладки? Что-то вроде 3-го значка ...Отключить элемент вкладки - Swift
self.tabBarItem.items![2].enabled = false
Должен быть способ выполнить такую простую задачу, как один вкладыш? выше не работает ...
Как отключить конкретный элемент вкладки? Что-то вроде 3-го значка ...Отключить элемент вкладки - Swift
self.tabBarItem.items![2].enabled = false
Должен быть способ выполнить такую простую задачу, как один вкладыш? выше не работает ...
Вот ответ
if let arrayOfTabBarItems = tabBarViewController.tabBar.items as! AnyObject as? NSArray,tabBarItem = arrayOfTabBarItems[2] as? UITabBarItem {
tabBarItem.enabled = false
}
Пришлось немного подстроить его для Swift 3: if let arrayOfTabBarItems = tabBarController? .tabBar.items как AnyObject как? NSArray, let tabBarItem = arrayOfTabBarItems [2] as? UITabBarItem { tabBarItem.isEnabled = true } – jammyman34
Чтобы отключить tabBarItem на одном экране (и снова включить его, когда меняется вид):
В определение класса, создавать переменные класса заполнителей для UITabBarItems:
var tabBarItemONE: UITabBarItem = UITabBarItem()
var tabBarItemTWO: UITabBarItem = UITabBarItem()
etc...
Затем в viewWillAppear, отключить элементы, как вы хотите:
let tabBarControllerItems = self.tabBarController?.tabBar.items
if let arrayOfTabBarItems = tabBarControllerItems as! AnyObject as? NSArray{
tabBarItemONE = arrayOfTabBarItems[0] as! UITabBarItem
tabBarItemONE.enabled = false
tabBarItemTWO = arrayOfTabBarItems[1] as! UITabBarItem
tabBarItemTWO.enabled = false
}
В viewWillDisappear, повторно включить элементы:
override func viewWillDisappear(animated: Bool) {
tabBarItemONE.enabled = true
tabBarItemTWO.enabled = true
}
Вот мой код делает то же самое, используя Swift 3:
let tabBarControllerItems = self.tabBarController?.tabBar.items
if let tabArray = tabBarControllerItems {
tabBarItem1 = tabArray[0]
tabBarItem2 = tabArray[1]
tabBarItem1.isEnabled = false
tabBarItem2.isEnabled = false
}
Просто поместите блок кода выше в viewDidLoad()
метод для начинающих и не забудьте создать переменные tabBarItem
, и вам все хорошо оттуда!
Вот один вкладыш:
В Objective C, что строка кода работает в viewDidLoad:
.
В Swift он не работает в viewDidLoad()
, но работает в viewWillAppear()
.
Вы пробовали что-то вроде этого: 'self.tabBarItem.items! [2] .setEnabled (true, forSegmentAtIndex: 2);'? – BHendricks