我有一个带2个按钮的界面,它们都调用相同的界面,但信息不同。在传统界面上我使用prepareForSegue,但我不知道WatchKit上的等价物是什么。
答案 0 :(得分:34)
您可以通过两种方式执行此操作:
在故事板中,您在segue中设置了一个标识符:
然后您可以使用contextForSegueWithIdentifier
:
- (id)contextForSegueWithIdentifier:(NSString *)segueIdentifier {
if ([segueIdentifier isEqualToString:@"yourIdentifier"]) {
return aDictionaryWithYourInformation;
}
}
或者您可以通过代码传递带有上下文的信息:
[self pushControllerWithName:@"YourViewController"
context:aDictionary];
此上下文是字典,您可以在- (void)awakeWithContext:(id)context
答案 1 :(得分:10)
对于Watchkit中的segue导航,WKInterfaceController中有两种方法:
override func contextForSegueWithIdentifier(segueIdentifier: String) -> AnyObject? {
return //your object
}
和表格
override func contextsForSegueWithIdentifier(segueIdentifier: String, inTable table: WKInterfaceTable, rowIndex: Int) -> [AnyObject]? {
return //your object
}
您可以在正在推送的接口控制器的func awakeWithContext(context: AnyObject?)
中获取要传递的对象
答案 2 :(得分:2)
在WatchKit中,您可以使用它来调用WKInterfaceController:
[self pushControllerWithName:@"YourControlName"
context:[self contextForSegueWithIdentifier:@"YourControlName"]];
答案 3 :(得分:1)
对于表,如下:
override func contextForSegue(withIdentifier segueIdentifier: String, in table: WKInterfaceTable, rowIndex: Int) -> Any? {
return //your object
}