Передать данные из табличного представления Parse в WatchKit

Я использую Parse для создания этого табличного представления и пытаюсь понять, как получить данные таблицы, чтобы передать их в WatchKit InterfaceController.

(Нужно ли мне запрашивать Parse, чтобы как-то получить и сохранить данные в array, который я затем смогу вызывать из WatchKit InterfaceController awakeWithContext?)

Вот что у меня есть, дайте мне знать, если я могу добавить что-нибудь полезное:

TableVC.m:

- (id)initWithCoder:(NSCoder *)aCoder
{
    self = [super initWithCoder:aCoder];
    if (self) {
        self.parseClassName = @"na";
        self.textKey = @"dateTime";
        self.pullToRefreshEnabled = YES;
        self.paginationEnabled = NO;
    }
    return self;
}
- (PFQuery *)queryForTable
{
    PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];

    return query;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object
{
    static NSString *simpleTableIdentifier = @"RecipeCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }
    UILabel *homeLabel = (UILabel*) [cell viewWithTag:101];
    homeLabel.text = [object objectForKey:@"test"];

    UILabel *dateLabel = (UILabel*) [cell viewWithTag:102];
    dateLabel.text = [object objectForKey:@"dateTime"];

    return cell;
}

Parse данные: введите здесь описание изображения

TableVC: введите здесь описание изображения

У меня есть базовая настройка WKInterfaceTable, и все, что мне нужно сделать, это показать те же точные данные, что и TableVC.m.

Итак, где я застрял, так это в том, что я знаю, что мне нужен какой-то массив в WKInterfaceTable для использования, но в моем TableVC.m, где я использую Parse, я не могу понять, как/что сделать, чтобы это произошло. И кажется, что я, вероятно, сделал бы запрос на синтаксический анализ в моем представленииDidLoad, чтобы вытащить те же соответствующие test и dateTime для использования в WKInterfaceTable, но я не уверен?


person SRMR    schedule 08.02.2015    source источник
comment
Вы когда-нибудь придумывали хорошее решение для этого?   -  person user717452    schedule 19.03.2015
comment
@ user717452 нет, есть идеи?   -  person SRMR    schedule 19.03.2015


Ответы (1)


В вашем расширении WatchKit вам нужно настроить таблицу по-другому. В iOS UITableView запрашивает ваш источник данных по мере необходимости для ячеек. В WatchKit вам нужно передать все данные для таблицы за один раз вам WKInterfaceTable. Я не буду вдаваться в подробности того, как настроить таблицу, так как вы можете найти полезную информацию здесь https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual./WatchKitProgrammingGuide/Tables.html.

Кроме того, я бы посоветовал вам выполнить запрос на синтаксический анализ в фоновом режиме, а затем обновить таблицу после возврата данных.

person Stephen Johnson    schedule 09.02.2015
comment
Спасибо за ответ! У меня есть основные настройки WKInterfaceTable. Итак, где я застрял, так это в том, что я знаю, что мне нужен какой-то массив в WKInterfaceTable для использования, но в моем TableVC.m, где я использую Parse, я не могу понять, как/что сделать, чтобы получить это. И кажется, что вы говорите, вероятно, сделать запрос на синтаксический анализ в моем viewDidLoad, чтобы извлечь test и dateTime для использования в WKInterfaceTable? Я в основном просто хочу, чтобы те же точные данные были в моем WKInterfaceTable. - person SRMR; 09.02.2015
comment
Вам нужно будет вызвать findObjects для вашего объекта PFQuery, чтобы получить ваш массив. Затем вам нужно будет установить количество строк в вашем WKInterfaceTable с помощью [table setNumberOfRows:results.count withRowType:@"MyRowTypeClass"];. Затем вам нужно будет перебрать каждый результат в результатах, возвращаемых из findObjects, и вызвать MyRowTypeClass* row = [table rowControllerAtIndex:index];. Затем вы можете установить значения из результата вашего запроса на синтаксический анализ в строке. Вам нужно будет настроить MyRowTypeClass как собственный класс с IBOutlets и использовать раскадровку для макета. - person Stephen Johnson; 09.02.2015
comment
У меня есть настройки MyRowTypeClass, IBOutlets и Storyboard, так что приятно знать, что я отслеживаю их. Выполняю ли я PFQuery и тому подобное в «TableVC.m»? Или я могу сделать это в WKInterfaceTable? Потому что, если это в TableVC.m, то мне нужно будет сохранить это как общедоступное array, чтобы мой WKInterfaceTable мог правильно его использовать, или я неправильно думаю об этом? - person SRMR; 09.02.2015
comment
Я не уверен на 100%, что понимаю структуру вашего кода, но, насколько я понимаю, вы захотите иметь выход в своем TableVC.m для вашего WKInterfaceTable и выполнять запрос в своем TableVC. Затем установите данные на выходе для WKInterfaceTable. - person Stephen Johnson; 09.02.2015