在标签栏之间发送数据

Sending data between tab bars

我需要发送一条数据,指示哪一行将它从我的一个选项卡 tableviewcontroller 发送到主视图控制器,然后我可以根据 viewDidAppear

中的值采取行动
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    //selectedRow = indexPath.row
    self.tabBarController?.selectedIndex = 0
}

然后在另一个视图控制器中做一些事情:

override func viewDidAppear(animated: Bool) {
    //selectedRow = row sent from tab bar,
    //load data from plist at index of the selected row
}

最好的方法是什么?谢谢

您应该使用 prepareForSegue 然后您将能够在 segue 之间传输信息。 看一下标识符 属性 和目标

您可以为您的其他视图控制器声明 属性 并在 tableView:didSelectRowAtIndexPath: 方法中设置它的值。

其他视图控制器:

class OtherViewController: UIViewController {
    var selectedRow: Int = 0

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        // load data from plist at index using selectedRow property
    }
}

TableViewControllertableView:didSelectRowAtIndexPath::

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var tabIndex = 0

    if let vc = self.tabBarController?.viewControllers?[tabIndex] as? OtherViewController {
        vc.selectedRow = indexPath.row
    }
    self.tabBarController?.selectedIndex = tabIndex
}