我怎么知道标签栏控制器索引是否在swift中以编程方式更改?

时间:2015-07-04 06:59:48

标签: ios arrays swift uitabbarcontroller

所以我在swift中写了一些东西,它使用带有四个标签的标签栏控制器,每个标签都可以自行完成。但是在主选项卡中,我从数组中选择最佳值并提供指向它的链接。该数组显示在第二个选项卡中。

我有这样的代码:

override func viewWillAppear(animated: Bool) {
        // some other stuff

        if dataManager.ideas.count > 0 {
            lblAllTimeBest.text = "Our all time best with a rating of \(dataManager.ideas[dataManager.allTimeBest].averageRating)% is:"

            btnAllTimeBest.hidden = false
             btnAllTimeBest.setTitle(dataManager.ideas[dataManager.allTimeBest].title, forState: UIControlState.Normal)

        //and some more stuff
    }

    @IBAction func btnAllTimeBestTapped(sender: AnyObject) {
            tabBarController?.selectedIndex = 1
    }

我根据数组索引在第二个选项卡上显示数组的项目。如何将索引(我已将其存储在datamanager中)传递给第二个选项卡或者我如何在第二个选项卡上知道它是使用第一个选项卡上的按钮显示的?

1 个答案:

答案 0 :(得分:0)

您可以尝试这些选项(按照"推荐和#34;的顺序):

  1. 保留对第二个控制器的引用(或从选项卡栏控制器中检索 ad hoc )并在第二个控制器中实现第一个控制器可以显式调用的消息
  2. 通过NSNotification发送NSNotificationCenter并在第二个控制器中收听
  3. (不推荐)使用第二个控制器可以检查的某种全局变量