您好,我是IOS Watchkit Development的新手。
当用户在表行上制表时,我需要传递数据。我尝试了使用segue
和使用pushControllerWithName
的两种方法,甚至在方法中尝试了presentControllerWithName
-(void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex
{
[self contextForSegueWithIdentifier:@"navigare" inTable:self.tbl rowIndex:rowIndex];
//And Tried following
[self pushControllerWithName:(NSString *)@"ProfileInterfaceController" context: rowValue];
}
这里有人帮忙吗?
从ProfileInterface Controller访问"rowValue"时遇到问题吗?或者你只是不确定如何做到这一点?
WatchKit允许您使用presentControllerWithName:Context:方法将数据发送到带有segue的WKInterfaceController。
名称-是在接口生成器中分配给目标WKInterfaceController的名称(不是文件名或任何其他名称)。
Context-是用于发送数据的NSDictionary参数。
初始化目标WKInterfaceController时,将调用wakeWithContext:方法,并且可以使用上下文字典。
在您提供的代码片段中,很难理解"rowValue"。在发送之前,需要将其封装在NSDictionary对象中。
查看Apple的框架参考以了解更多信息
无关,但值得注意的是-在目标C中使用NSStringLiteral语法(@"This is a string")时,没有必要前置(NSString*)。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "updatepurposesegue"){
var vrc = segue.destinationViewController as NewPurposeViewController;
vrc.temp = row
}
}