我有一个带有Tableview的iPhone应用程序,其数据来自CoreData.

相同的数据也会显示在观看应用中:

如果我从iPhone应用程序中添加一行:

我在Watch应用程序中重新加载数据:

我看到旧行空了!

如果停止手表应用程序并重新启动它,一切都会正确显示!

这是在Watch应用程序中填充Tableview的代码
-(void)awakeWithContext:(id)context{
[super awakeWithContext:context];
[self loadTable];
}
-(void)loadTable{
NSLog(@"loadTableData");
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Data"];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Data"
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortByDate = [[NSSortDescriptor alloc] initWithKey:@"sortedDateAndTime" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortByDate, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
self.watchMArray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
// [self.watchTableView setRowTypes:self.watchMArray];
[self.watchTableView setNumberOfRows:self.watchMArray.count withRowType:@"data"];
for (NSInteger i = 0; i < self.watchMArray.count; i++)
{
WatchTableCell *cell = [self.watchTableView rowControllerAtIndex:i];
NSManagedObject *data = …Run Code Online (Sandbox Code Playgroud) 我想删除表中行之间的间距,是否有任何属性?
Apple自己的Activity应用程序有一个有趣的功能,我尝试在我自己的手表应用程序中重新实现:活动应用程序中的每个页面都是可滚动的,基本上有2个垂直页面.第一页是圆圈,第二页显示更多信息.
但是这些页面在使用数字表冠时通常不会向上和向下滚动 - 它们会拍摄.所以你不能在页面之间滚动.Apple似乎使用了WKInterfaceTable两行但我没有找到任何文档如何实现捕捉行为.
他们是如何做到的呢?
当我运行下面的代码时,返回的方法rowControllerAtIndex为WKInterfaceTablenil.
[self.outletTable setNumberOfRows:numberOfCategoriesToShow withRowType:@"rowTypeLabel"];
RowControllerTypeLabel *theRow = [self.outletTable rowControllerAtIndex:rowInTable];
Run Code Online (Sandbox Code Playgroud)
我检查了什么:
RowControllerTypeLabel.Custom Class标签的字段设置为我的自定义类RowControllerTypeLabel.我错过了什么?
如何在WKInterfaceTable中实例化两个不同的动态行模板?对于一个模板,我使用函数
[self.stocksTable setNumberOfRows: self.stocksData.count withRowType:@"TableRow"];
TableRow *row = [self.stocksTable rowControllerAtIndex:i];
Run Code Online (Sandbox Code Playgroud)
问题:如何有两种类型的行?
我们如何在表中创建部分,因为没有委托.是否有任何其他方式来创建部分或我们必须使用两个表.
我WKInterfaceTable在Apple Watch上添加行时遇到问题.奇怪的是,无论我做什么,前4行都显示为空.我尝试手动和循环添加行 - 无关紧要.我相信我的代码很好,因为第5行和更多行看起来很好.这是发生的事情:

进一步滚动:

我的代码:
import Foundation
import WatchKit
class TableInterfaceController: WKInterfaceController{
@IBOutlet weak var agentTable: WKInterfaceTable!
let agents = ["The Dude","Walter","Donnie","Maude","Knox","Karl","Nihilist 2"]
override init(){
super.init()
loadTableData()
}
private func loadTableData(){
agentTable.setNumberOfRows(agents.count, withRowType: "AgentTableRowController")
println("Count: \(agents.count)")
for(index,agentName) in enumerate(agents){
let row = agentTable.rowControllerAtIndex(index) as AgentTableRowController
println(agentName, index)
row.agentLabel.setText(agentName)
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.这可能是微不足道的.我在Yosemite 10.10.2上运行Xcode 6.2(6C131e)
尽管有更多元素而不是适合屏幕,我似乎无法通过模拟器或实际手表中的触摸或滚轮获得滚动行为.

我正在使用 WatchKit,我有一个简单的界面,只有一个表,但我只用几行代码就得到了一个错误,也许我忘记了一些非常基本的东西。
我的界面:
表内的行具有标识符:

和自定义类:

控制器由以下代码实现:
import WatchKit
import Foundation
class ActiveListController: WKInterfaceController
{
@IBOutlet weak var tableView: WKInterfaceTable!
override func awakeWithContext(context: AnyObject?)
{
super.awakeWithContext(context)
loadData()
}
override func willActivate()
{
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate()
{
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
func loadData()
{
tableView.setNumberOfRows(10, withRowType: "ItemRow") // GET ERROR
for index in …Run Code Online (Sandbox Code Playgroud) watchkit ×10
wkinterfacetable ×10
ios ×7
apple-watch ×5
scroll ×2
swift ×2
watchos ×2
core-data ×1
iphone ×1
objective-c ×1
storyboard ×1
watchos-2 ×1