0

您好,我是 IOS Watchkit 开发的新手。

当用户在表格行上使用标签时,我需要传递数据。我已经尝试了使用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];

}

这里有什么帮助吗?

4

2 回答 2

4

您是否在从 ProfileInterfaceController 访问“rowValue”时遇到问题?或者您只是不确定如何实现这一点?

WatchKit 允许您使用 presentControllerWithName :Context:方法通过 segue 向 WKInterfaceController 发送数据。

Name - 是在 Interface Builder 中分配给目标 WKInterfaceController 的名称(不是文件名或任何其他名称)。
Context - 是一个用于发送数据的 NSDictionary 参数。

当目标 WKInterfaceController 被初始化时,awakeWithContext:方法被调用,你的上下文字典就可以使用了。

在您提供的代码片段中,很难理解“rowValue”。这需要在发送之前封装在一个 NSDictionary 对象中。

查看Apple 的框架参考以获取更多信息

不相关,但值得注意 - 在 Objective C 中使用 NSString 文字语法 (@"This is a string") 时,不需要添加 (NSString *)。

于 2015-02-08T10:51:59.060 回答
-3
 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if(segue.identifier == "updatepurposesegue"){
        var vrc = segue.destinationViewController as NewPurposeViewController;

        vrc.temp = row

    }
}
于 2015-03-25T05:58:39.533 回答