无法在接口控制器之间传递数据
Unable to Pass Data Between Interface Controllers
我在将字符串传递到 WatchKit 应用程序中的新界面控制器时遇到问题。从 table 行连接到新界面控制器的 storyboard 中。这是我选择 table 行的代码:
var selectedElement: String!
override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {
switch rowIndex{
case 0:
selectedElement = menuElements.objectAtIndex(0) as! String
case 1:
selectedElement = menuElements.objectAtIndex(1) as! String
case 2:
selectedElement = menuElements.objectAtIndex(2) as! String
default:
break
}
}
然后我使用此方法将 selectedElement 变量作为上下文传递:
override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
return selectedElement
}
在我的 SecondInterfaceController class 中,我尝试使用此代码在标签中显示上下文字符串:
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
label.setText(context as? String)
}
这会产生一个空白标签,我也尝试将上下文打印到控制台,但它返回了 nil。
在此先感谢您的帮助。
要在接口控制器之间传递数据,您需要添加此方法
pushControllerWithName:context:
我在将字符串传递到 WatchKit 应用程序中的新界面控制器时遇到问题。从 table 行连接到新界面控制器的 storyboard 中。这是我选择 table 行的代码:
var selectedElement: String!
override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {
switch rowIndex{
case 0:
selectedElement = menuElements.objectAtIndex(0) as! String
case 1:
selectedElement = menuElements.objectAtIndex(1) as! String
case 2:
selectedElement = menuElements.objectAtIndex(2) as! String
default:
break
}
}
然后我使用此方法将 selectedElement 变量作为上下文传递:
override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
return selectedElement
}
在我的 SecondInterfaceController class 中,我尝试使用此代码在标签中显示上下文字符串:
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
label.setText(context as? String)
}
这会产生一个空白标签,我也尝试将上下文打印到控制台,但它返回了 nil。
在此先感谢您的帮助。
要在接口控制器之间传递数据,您需要添加此方法
pushControllerWithName:context: