2

私は UITableViewController を持っています。1 つのセルをタップすると、UITableViewController を使用して UINavigationController をモーダル ビューとして表示します。

私はシークを準備するためにこの機能を持っています:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"ShowTitles"]) {
        UINavigationController *navigationController = (UINavigationController *)segue.destinationViewController;

        if (navigationController) {
            DataListViewController *dataListController = (DataListViewController *)[navigationController topViewController];

            if (dataListController) {
                dataListController.delegate = self;
                dataListController.viewTitle = NSLocalizedString(@"Titles", nil);
                dataListController.dataArray = [NSMutableArray arrayWithArray:self.titles];
            }
        }
    }
}

しかし、セルをタップすると、次のエラーが表示されます: CATransaction synchronize called within transaction.

そのエラーの原因は何ですか?

編集: cellForRowAtIndexPath 関数のこの場所で発生します:

[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
4

1 に答える 1

2

関数 dequeueReusableCellWithIdentifier:forIndexPath: に気付かなかったので、クラスを登録する必要があるため、viewDidLoad 関数でそれを行いました。

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
于 2013-11-05T21:22:29.133 に答える