iPhone SDK: переход от одного вида к другому с помощью нажатия кнопки - PullRequest
3 голосов
/ 26 октября 2008

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

Я без конца пытался заставить пример проекта NavBar сделать это ... и он работает, но только если я использую UINavigationController с таблицей, к которой я могу прикоснуться и т. Д. Я также попробовал все скелетные проекты в XCode.

Я думал, что закончил, когда сделал это:

[[self navigationController] presentModalViewController:myViewController animated:YES];

Но я не смог бы сделать это без UINavigationController. Я просто хочу простой пример.

Большое спасибо!

Ответы [ 3 ]

7 голосов
/ 26 октября 2008

Один из способов сделать это - создать новый UIView, а затем, когда кнопка нажата, добавить этот новый UIVIew в качестве подпредставления, что делает его тем, что вы видите.

Если вы сделаете новый вид своим собственным подклассом UIView, вы бы сделали что-то вроде этого.

LoginView *login = [[LoginView alloc] initWithFrame: rect];
[mainView addSubview: login];
6 голосов
/ 18 апреля 2009
[self presentModalViewController:myViewController animated:NO];

Появится новый вид, без анимации, ничего. Чтобы избавиться от этого, внутри myViewController:

[self dismissModalViewControllerAnimated:NO];

Хотя я рекомендую вам использовать приятные скользящие анимации (измените НЕТ на ДА.) И да, вы можете сложить их. Я думаю, что это лучше, чем создание нового UIView, но я могу ошибаться.

1 голос
/ 27 октября 2008

Правильный способ сделать это - настроить ваш проект с UINavigationController. В вашем корневом контроллере представления добавьте свою кнопку в представлении контроллеров представления. Затем в viewDidLoad зарегистрируйтесь для UIControlEventTouchUpInside событий от вашей кнопки. Затем, в обратном вызове вашего события, позвоните:

[self.navigationController pushViewController:[[[SecondViewControllerClass alloc] initWithNib:nibName bundle:nil] autorelease]];

То, что предложил kdbdallas, сработает, но вы не получите приятных скользящих эффектов, и панель навигации не изменится автоматически и не предоставит пользователям кнопку возврата.

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