iphone получатель таблицы ViewController - PullRequest
1 голос
/ 12 января 2012

У меня есть tableViewController, который я буду представлять время от времени.

Я создал его как свойство для .h

myTVC *myTable;

и

@property (nonatomic, retain) myTVC *myTable;

затем, на .m я синтезировал его и создал геттер

@synthesize myTable = _myTable;

и

- (myTVC *) myTable {

    if (_myTable == nil) { 
        _myTable = [[myTVC alloc] init];
    }
    return _myTable;
}

, когда пришло время использовать, я просто делаю

[self presentModalViewController:myTable animated:YES];
[myTable release];

Насколько я думал, в этот момент геттер myTable будет работать и выделять tableViewController, но он не работает, и приложение вылетает, сообщая мне, что я пытаюсь представить нулевое tableViewController ...

Чтоя скучаю?Благодаря.

Ответы [ 2 ]

1 голос
/ 12 января 2012

вам нужно сделать self.myTable, если вы делаете myTable, вы собираете свой iVar, который называется myTable, в который не сохраняется ваш @property, потому что вы делаете это: @synthesize myTable = _myTable;, который создастiVar call _myTable.

Итак, вы делаете здесь две неправильные вещи.
Чтобы исправить свой код, сделайте следующее:
удалите эту строку: myTVC *myTable;
и выполните [self presentModalViewController:self.myTable animated:YES];

Третья вещь также странна в вашем коде

[self presentModalViewController:myTable animated:YES];
[myTable release];  // <---- this line, remove it to

Я не уверен, почему эта строка существует, так как вы храните свой controller в @property.

и 4-й Между прочим
Инициализатором по умолчанию для UIViewController является следующий

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

Вы можете передать nil, если вы этого не сделаетеесть .xib, чтобы пойти с этим.

0 голосов
/ 12 января 2012

In

[self presentModalViewController:myTable animated:YES];
[myTable release];

Вы на самом деле не вызываете метод myTable.Сделайте

self.myTable = [self myTable]

первым.Хотя я не понимаю, зачем вам нужен метод myTable вместо того, чтобы просто выполнять инициализацию alloc.

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