WatchKit 中的 prepareForSegue 等价物
prepareForSegue equivalent in WatchKit
我有一个有2个按钮的界面,它们都调用相同的界面但具有不同的信息。在传统界面上我使用prepareForSegue,但我不知道WatchKit上的等效界面是什么。
您可以通过两种方式执行此操作:
在你的故事板中,你在你的 segue 中设置了一个标识符:
然后你可以使用contextForSegueWithIdentifier
:
- (id)contextForSegueWithIdentifier:(NSString *)segueIdentifier {
if ([segueIdentifier isEqualToString:@"yourIdentifier"]) {
return aDictionaryWithYourInformation;
}
}
或者您可以通过代码通过上下文传递信息,使用:
[self pushControllerWithName:@"YourViewController"
context:aDictionary];
此上下文是一个字典,您可以在 - (void)awakeWithContext:(id)context
中访问此字典
对于 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?)
中得到你传入的对象
在 WatchKit 中,您可以使用它来调用 WKInterfaceController:
[self pushControllerWithName:@"YourControlName"
context:[self contextForSegueWithIdentifier:@"YourControlName"]];
表格如下:
override func contextForSegue(withIdentifier segueIdentifier: String, in table: WKInterfaceTable, rowIndex: Int) -> Any? {
return //your object
}
我有一个有2个按钮的界面,它们都调用相同的界面但具有不同的信息。在传统界面上我使用prepareForSegue,但我不知道WatchKit上的等效界面是什么。
您可以通过两种方式执行此操作:
在你的故事板中,你在你的 segue 中设置了一个标识符:
然后你可以使用contextForSegueWithIdentifier
:
- (id)contextForSegueWithIdentifier:(NSString *)segueIdentifier {
if ([segueIdentifier isEqualToString:@"yourIdentifier"]) {
return aDictionaryWithYourInformation;
}
}
或者您可以通过代码通过上下文传递信息,使用:
[self pushControllerWithName:@"YourViewController"
context:aDictionary];
此上下文是一个字典,您可以在 - (void)awakeWithContext:(id)context
对于 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?)
中得到你传入的对象
在 WatchKit 中,您可以使用它来调用 WKInterfaceController:
[self pushControllerWithName:@"YourControlName"
context:[self contextForSegueWithIdentifier:@"YourControlName"]];
表格如下:
override func contextForSegue(withIdentifier segueIdentifier: String, in table: WKInterfaceTable, rowIndex: Int) -> Any? {
return //your object
}