Как показать другое окно в окне приложения для iPhone - PullRequest
2 голосов
/ 04 октября 2010

Прежде всего, я новичок в программировании Objective-C и IPhone. Есть что-то, что я не могу заставить работать. У меня есть окно приложения IPhone и в главном окне у меня есть кнопка. Я хочу показать другое окно, когда я нажимаю кнопку. Я связал событие с моим контроллером. Я просто не знаю, как показать другое окно (otherWindow) в событии.

Кто-нибудь может помочь сделать это? Спасибо

Ответы [ 4 ]

6 голосов
/ 04 октября 2010

Это пример добавления UIView в окно при нажатии кнопки:

- (IBAction)buttonClicked:(id)sender 
{
    UIView *newView = [[NewView alloc] initWithFrame:CGRectMake(250, 60, 500, 600)];
    [self.view addSubview:newView];
    [newView release];
}

Это пример добавления нового представления (при условии, что вы используете навигационный контроллер:

LoginViewController *viewController = [[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil];

[self.navigationController pushViewController:viewController animated:YES];
[viewController release];

И это пример представления нового вида (модальное окно):

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];

    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];

    [controller release];
2 голосов
/ 06 октября 2010

Я буду считать, что под "окном" вы на самом деле имеете в виду новый скриншот содержимого.

Первый вопрос: сможет ли пользователь вернуться на первый экран с помощью кнопки?Если да, то вы должны использовать UINavigationController или модальный контроллер вида.

UINavigationController предоставляет вам панель навигации с заголовком и кнопкой «назад» бесплатно в верхней части экрана.Создайте новый проект, используя шаблон навигации, чтобы узнать, как он работает.Использовать его так же просто, как:

-(IBAction)didTapButton:(id)sender {
    CWTheNewController* controller = [[[CWTheNewController alloc] init] autorelease];
    [self.navigationController pushViewController:controller animated:YES];
}

Контроллер навигации прост в использовании, но новый контроллер представления будет охватывать весь экран, и вы можете предоставить код / ​​пользовательский интерфейс дляснова отключите контроллер:

-(IBAction)didTapButton:(id)sender {
    CWTheNewController* controller = [[[CWTheNewController alloc] init] autorelease];
    [self presentModalViewController:controller animated:YES];
}

Если пользователь должен не иметь возможность вернуться назад, тогда вместо этого сделайте что-то подобное, чтобы полностью заменить текущее содержимое экрана:

-(IBAction)didTapButton:(id)sender {
    CWTheNewController* controller = [[[CWTheNewController alloc] init] autorelease];
    self.view.window.rootViewController = controller;
}

В любом случае, первым документом, который вы должны прочитать и понять, является Руководство по программированию View Controller для iOS . ВСЕ вы делаете с iOS, должны использовать контроллеры представления, в противном случае вы делаете это неправильно, и для вас это слишком сложно.

1 голос
/ 04 октября 2010

Приложения для iPhone обычно имеют только 1 окно, как говорит Apple doc .

Если вы хотите показать другое «окно», вы можете добавить еще одно подпредставление к 1 и единственному окну.

1 голос
/ 04 октября 2010

После создания вашего окна, вызовите makeKeyWindow или makeKeyAndVisible для него.

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