iOS 8 Сегодня виджет не отображается при загрузке

Я создал простой виджет расписания, но когда я пытаюсь проверить его в симуляторе iOS, он говорит что-то вроде

Расписание [4012:108619] Не удалось унаследовать разрешения CoreMedia от 3965: (пусто)

И виджет не появляется. Вот мой код

#import "TodayViewController.h"
#import <NotificationCenter/NotificationCenter.h>

@interface TodayViewController () <NCWidgetProviding, UITableViewDataSource, UITableViewDelegate>


@end

@implementation TodayViewController

- (void)viewDidLoad {
    [super viewDidLoad];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableCell"];
    return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 7;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
    // Perform any setup necessary in order to update the view.

    // If an error is encountered, use NCUpdateResultFailed
    // If there's no update required, use NCUpdateResultNoData
    // If there's an update, use NCUpdateResultNewData

        completionHandler(NCUpdateResultNewData);
    }

    @end

2 ответа

Это сообщение появляется постоянно с виджетами Today и обычно не указывает на то, что на самом деле что-то не так. Если вы не испытываете какую-то проблему, о которой не упоминали, просто игнорируйте ее.

Причина, по которой ваш виджет не отображается, но ваш код не говорит, сколько места вам нужно. Вам нужно установить self.preferredContentSize, С представлениями таблицы в виджете вы обычно делаете что-то вроде:

self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, self.objects.count * 44.0);

замещать self.objects с любым массивом, который вы используете для данных таблицы, и замените 44 вашей высотой ячейки.

Ваш код использует 7 строк, что, вероятно, слишком много. См. Проблема в виджетах в ландшафтном режиме для обсуждения причин.

Версия Swift 4:

preferredContentSize = CGSize(width: preferredContentSize.width, 
                              height: CGFloat(objects.count) * 44.0)
Другие вопросы по тегам