В чем разница между self.navigationController и Delegate.navigationController - PullRequest
3 голосов
/ 15 января 2010

я могу использовать

MyFirstAppDelegate *delegate = (MyFirstAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.navigationController popViewControllerAnimated:YES];

или

[self.navigationController popViewControllerAnimated:YES];

Так в чем же разница?

Пожалуйста, ответьте мне ......

Заранее спасибо ..

Ответы [ 2 ]

6 голосов
/ 15 января 2010

Первая форма используется при доступе к контроллеру навигации из объекта, который не является контроллером представления, управляемым контроллером навигации. Эта форма обращается к контроллеру навигации через объект, которому он принадлежит, то есть делегат приложения. Поскольку делегат приложения может быть легко вызван из любой точки программы, это хорошее место для парковки вещей, на которое может понадобиться ссылка на любой объект.

Вы используете вторую форму из контроллера представления, который управляется контроллерами навигации. Он будет работать только с контроллера представления, который был ранее помещен в стек.

4 голосов
/ 15 января 2010

Я предполагаю, что у вас есть один контроллер навигации, код которого выполняется в контроллере представления, который находится в этом стеке навигации.

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

Обычно вы используете вторую форму.

...