WKInterfaceTable的didSelectRowAtIndex永远不会在WKInterfaceController 中被调用



我有一个 wkinterfacecontroller ,我添加了一个表:

// .h
@interface InterfaceController : WKInterfaceController
@property (weak, nonatomic) IBOutlet WKInterfaceTable *table;
@end
// .m
- (void)table:(WKInterfaceTable *)table didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"did select");
}
- (void)table:(WKInterfaceTable *)table
didSelectRowAtIndex:(NSInteger)rowIndex{
    NSLog(@"did select new");
}

但是,这两种方法都没有被调用。我找不到WKInterfaceTable的任何协议声明,表格上都没有任何委托属性。

我在这里缺少一些东西吗?

我发现该方法从未被调用,因为我设置了一个在接口构建器上选择该行的选择。

看来,通过设置委托后没有委托和表协议,它可以阻止DidSelectrow方法被调用。

在Apple的WKInterfaceController文档中,它指出,如果您没有任何动作或egues,则称为的方法为: - 表:didSelectRowatIndex:

如果您使用segues,则称为:

的方法

按钮: - context forseguewithIdentifier:

桌子: - context forseguewithIdentifier:coltable:rowindex:

swift 4

这是在REST/JSON实现中选择WKInterfacetable行的一个示例。

创建一个数组类的上下文属性实例,而不是使用self.pushController

override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) {
    let message = messageObjects[rowIndex]
    presentController(withName: "MessageView", context: message)
}

相关内容

  • 没有找到相关文章

最新更新