Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何禁用选项卡栏项目的选择-swift_Ios_Swift_Uitabbarcontroller - Fatal编程技术网

Ios 如何禁用选项卡栏项目的选择-swift

Ios 如何禁用选项卡栏项目的选择-swift,ios,swift,uitabbarcontroller,Ios,Swift,Uitabbarcontroller,我有一个应用程序,其中有两个UIViewcontroller嵌入在UIAbbarController中。当我在UIViewController-1中时,我想按下一个按钮来禁用选项卡栏的所有项目选择。我的努力如下,但我不知道如何完成代码 当我在“文件夹”UIViewController中时,我想禁用任何选项卡栏项目的选择: class Folders: UIViewController, UITableViewDataSource, UITableViewDelegate{ ... //

我有一个应用程序,其中有两个UIViewcontroller嵌入在UIAbbarController中。当我在UIViewController-1中时,我想按下一个按钮来禁用选项卡栏的所有项目选择。我的努力如下,但我不知道如何完成代码

当我在“文件夹”UIViewController中时,我想禁用任何选项卡栏项目的选择:

 class Folders: UIViewController, UITableViewDataSource, UITableViewDelegate{

 ...
 // DISABLE TAB BAR ITEMS
 func disable (){
    let tabBarItemsArray = self.tabBarController?.tabBar.items
    tabBarItemsArray[0].enabled = false // THIS BIT OF CODE IS NOT RECOGNIZED BY XCODE
  }
 ...
 }

tabBarItemsArray
是可选的,它的类型是
[UITabBarItem]?

您可以首先强制展开它:
tabBarItemsArray![0]
,但正确的方法是使用
,如果让
构造:

if let tabBarItemsArray = tabBarController.tabBar.items {
    tabBarItemsArray[0].isEnabled = false
}
或:


tabBarItemsArray
是可选的,它的类型是
[UITabBarItem]?

您可以首先强制展开它:
tabBarItemsArray![0]
,但正确的方法是使用
,如果让
构造:

if let tabBarItemsArray = tabBarController.tabBar.items {
    tabBarItemsArray[0].isEnabled = false
}
或:


您可以使用一行代码来实现这一点。请检查以下代码

您可以从任何控制器执行此操作


另一种方式 您可以定义NotificationCenter观察者来实现。请检查以下代码*在TabBar控制器文件中

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    NotificationCenter.default.addObserver(self, selector: #selector(disableTab(notification:)), name: Notification.Name("disableTab"), object: nil)
}

@objc func disableTab(notification: Notification) {
    self.TabBarItem.isEnabled = false
}
从以下任何地方开火…


您可以使用一行代码来实现这一点。请检查以下代码

您可以从任何控制器执行此操作


另一种方式 您可以定义NotificationCenter观察者来实现。请检查以下代码*在TabBar控制器文件中

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    NotificationCenter.default.addObserver(self, selector: #selector(disableTab(notification:)), name: Notification.Name("disableTab"), object: nil)
}

@objc func disableTab(notification: Notification) {
    self.TabBarItem.isEnabled = false
}
从以下任何地方开火…


如果要一次禁用一个选项卡项,则此选项用于禁用第一个选项卡项:

guard let tabbars = self.tabBar.items else {
                  return
              }
              tabbars[0].isEnabled = false
但如果您希望同时禁用所有这些功能,则这是要实现的功能:

 self.tabBar.items?.map{$0.isEnabled = false}

如果要一次禁用一个选项卡项,则此选项用于禁用第一个选项卡项:

guard let tabbars = self.tabBar.items else {
                  return
              }
              tabbars[0].isEnabled = false
但如果您希望同时禁用所有这些功能,则这是要实现的功能:

 self.tabBar.items?.map{$0.isEnabled = false}

有一个UITableControllerDelegate方法用于此。tabBarController(u3;:shouldSelect:)。有一个UITableControllerDelegate方法用于此。tabBarController(u3;:shouldSelect:)。