presentModalViewController и navigationController - PullRequest
2 голосов
/ 20 апреля 2011

Я хочу знать разницу между

[self presentModalViewController:controller animated:YES];

и

    [self.navigationController pushViewController:controller animated:YES];

Я использовал оба, но все еще не знаю или заметил разницу. когда следует использовать один из них?

Спасибо ..

Ответы [ 3 ]

3 голосов
/ 20 апреля 2011

Основная разница:

pushViewController работает только в навигационных контроллерах

presentModalViewController работает для всех контроллеров представления

navigationController - это экземпляр вашего UINavigationController, который используется всеми контроллерами в вашем стеке навигации (UIViewController).

2 голосов
/ 11 июля 2011

если базовый класс имеет свой собственный NavigationController, вы можете написать:

[self.navigationController pushViewController:objMyViewController animated:YES];

, если в вашем базовом классе есть только UIViewController, тогда используйте:

MyViewController * objMyViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:objMyViewController];
navController.navigationItem.leftBarButtonItem  = nil;  // make nil if you want
                                                        // to use it in next View
[self presentModalViewController:navController animated:YES];

, MyViewController имеет навигацию, так что выможет - Push - другой viewController, написав функцию, как показано ниже в MyViewController.

-(IBAction)btnNext_click {
    SecondViewController * objSecondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
    [self.navigationController pushViewController:objSecondViewController animated:YES];
}
2 голосов
/ 20 апреля 2011

Представление модального представления представляет представление поверх другого представления. Вы обычно выполняете их для «задач», которые нужно запускать и выполнять автономно. Читайте дальше о модальных представлениях в руководствах разработчиков Apple.

Перенос представления на контроллер навигации отличается, когда есть логическая потребность в навигации в приложении. Скажите таблицу детализации, как в приложении настроек iDevices, где есть основные настройки, затем вы перейдете к дополнительным настройкам и т. Д.

Какими бы ни были ваши вопросы, если они носят концептуальный и общий характер, я настоятельно советую вам найти "Руководство по программированию X", которое приведет вас к надлежащему руководству по программированию Apple :) X = посмотреть контроллер в вашем случае

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html

...