Представление UITableViewController, добавленное как подпредставление для приложения сбоев UIViewController - PullRequest
0 голосов
/ 05 марта 2012

У меня есть два класса в моем проекте:

#import <UIKit/UIKit.h>
#import "TableViewController.h"

@interface MainViewController : UIViewController
@end

и

#import <UIKit/UIKit.h>

@interface TableViewController : UITableViewController
@end

В MainViewController.m я пытаюсь сделать это:

TableViewController *tview = [[TableViewController alloc] initWithNibName:@"TableViewController" 
                                    bundle:nil];  
tview.tableView.dataSource = tview;
tview.tableView.delegate = tview;
[self.view addSubview: tview.view];

Тем не менее, это сбой с:

-[MainViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xb52dc90'

Я не понимаю, почему MainViewController становится источником данных / делегатом для TableViewController, когда я уже установил делегат / источник данных в инициализации выше. Я также попытался установить для делегата / источника данных TableViewController значение self изнутри его viewDidLoad, но MainViewController по-прежнему продолжает действовать как делегат / источник данных, независимо от этого. Я пробовал с подключенными и не подключенными файлами пера, но без разницы.

В идеале я хочу, чтобы TableViewController выступал в качестве делегата и источника данных, а его представление добавлялось в MainViewController. Как я могу это сделать?

Спасибо!

Примечание. Ни одно из решений по какой-то причине не сработало. В конце концов, я воссоздал TableViewController как наследующий от UIViewController и установил его как, и тогда все пошло нормально.

Ответы [ 2 ]

0 голосов
/ 05 марта 2012

Вы установили делегат и источник данных в ноль в методе dealloc?

tview.tableView.delegate = nil;
tview.tableView.dataSource = nil;
0 голосов
/ 05 марта 2012

Где вы написали методы делегата TableView ??Они должны быть внутри вашего класса TableViewController, а не внутри класса MainViewController.Напишите методы делегата UITableView внутри класса TableViewController.

Надеюсь, это решит вашу проблему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...