在标签栏之间发送数据
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
}
}
TableViewController
的tableView: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
}
我需要发送一条数据,指示哪一行将它从我的一个选项卡 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
}
}
TableViewController
的tableView: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
}