2010-02-21 3 views
1

Хорошо, я читал книги по книгам, все с прекрасными примерами наличия нескольких контроллеров просмотра со своими собственными Nibs вместе с чтением яблочных документов.View Controllers

Мой вопрос заключается в следующем: все примеры показывают, что несколько видов отображаются через панель инструментов или панель вкладок. Пользователь нажимает на какую-либо кнопку на одном из упомянутых, отображается новое представление (сохраняя отображение панели вкладок/инструментов), затем они могут щелкнуть другую кнопку на вкладке/панели инструментов и перейти к другому представлению.

Это единственный способ, которым это возможно? Если я хочу иметь главный экран с тремя кнопками в середине экрана (Play Game, Rules, High Scores), и если вы нажмете на него, пусть он поднимет правильный файл nib, это можно сделать только с помощью панели инструментов/панель вкладок? Если да, то в некоторых приложениях, где его нет, это потому, что он «скрыт»?

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

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

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

Любая помощь/примеры с этим очень ценятся.

Geo ...

ответ

1

Вам не нужно использовать в UINavigationController, чтобы сделать это ...

Вот один способ, которым я мог думать, чтобы сделать это. Предположим следующее:

mainMenuViewController - ваш контроллер представления, который имеет 3 кнопки

view1ViewController - первый из ваших взглядов

view2ViewController - второй из ваших взглядов

view3ViewController - третий других ваших взглядов

У вашей кнопки, которая вызывает view1 в mainMenuViewController, создайте UIViewController, затем удалите себя из окно, например:

YourAppApplicationDelegate *delegate = (YourAppApplicationDelegate*)[[UIApplication sharedApplication] delegate]; [self.view removeFromSuperview]; [delegate.window addSubview:view1ViewController.view];

И вы могли бы сделать то же самое с помощью кнопки «вернуться в главное меню» в каждом из этих контроллеров отображения второго уровня.

+0

Есть ли [delegate.window addSubview: view1ViewController]; затем отобразить представление? Если это так, то представление, которое было показано ранее, все еще существует? Он скрыт? – George

+0

Я сделал опечатку, это должно быть [delegate.window addSubview: view1ViewController.view] ;. Что это делает, так это добавление view1ViewController в окно. [Self.view removeFromSuperview]; удаляет вид вызывающего UIViewController из окна. Вы в основном меняете их. – ChrisW

+0

Вы бы поменяли их обратно тем же методом, чтобы вернуться в главное меню. В любом способе вызывается, когда пользователь нажимает кнопку «Главное меню», вы удаляете текущее представление из окна и добавляете представление контроллера главного меню назад. – ChrisW

0

Вы можете пойти и назад между вашими взглядами с использованием метода presentModalViewController/dismissModalViewControllerAnimated от UIViewController как и для Exemple:

- (IBAction)button1IsPressed:(id)sender { 
    UIViewController *controller1; 
    [controller1 setDelegate:self]; 
    [self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; 
    [self presentModalViewController:controller1 animated:YES]; 
    [controller1 release]; 
} 

- (void)dismissViewController { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

И вернуться называют эту функцию в controller1:

[self.delegate dismissViewController]; 

Это всего лишь пример, вы можете сделать некоторые улучшения.

Смежные вопросы