Как правильно переключить вид? - PullRequest
0 голосов
/ 14 июля 2010

Я знаю, что это уже достаточно информации об этом в Интернете, но я новичок в программировании и немного запутался, мне нужна небольшая помощь, пожалуйста ... например, у меня есть 10 контроллеров представлений и переключение между ними с помощью кнопок, напримеря переключаюсь с

    -(IBAction)goToSecondView:(id)sender {

 SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
 [self presentModalViewController:secondView animated:NO];
 [secondView release];
    }
   /* or */


-(IBAction)goToSecondView:(id)sender {

SecondViewController *secondView = [[SecondViewController alloc]
initWithNibName:@"SecondViewController" bundle:nil]; [self.view addSubview:secondView.view];
[secondView release];
}

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

[self.view removeFromSuperview]; /* or */ [self dismissModalViewControllerAnimated:YES];

, и я не знаю, как заставить удалить первый вид при переключении наво-вторых, например при переходе от FirstView к SecondView второго вида, необходимо удалить FirstView и после из SecondView перейти к ThridView или SevenView пример и необходимо удалить SecondView ... как я могу это сделать? МожетВы делаете пример кода, пожалуйста?я знаю, это очень легко, но не для меня, я новичок в программировании

-------------------- обновление -----------------------------------------------------------------

я хочу сделать что-то вроде> здесь <но я не все понимаю, может кто-нибудь сделать пример кода, пожалуйста?. </p>

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

Ответы [ 2 ]

0 голосов
/ 14 июля 2010

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

[self.view setHidden: YES]

Это просто сделает их не нарисованными. Это удобно, потому что removeFromSuperview фактически освободит представление из памяти, если оно не было сохранено, то есть вы никогда не получите его обратно.

0 голосов
/ 14 июля 2010

Какой из этих методов вы используете (или если вам следует использовать другой), зависит именно от того, чего вы пытаетесь достичь.

Если бы было одно представление, в котором перечислены все остальные, и все, что вы хотели сделать, - это переходить от первого представления к другому и обратно, тогда метод presentModalViewController: otherView будет в порядке. Если вы добавляете другие виды в качестве подпредставления первых и полностью их скрываете, это не лучший способ сделать что-то. Вы должны скорее добавить другое представление как подпредставление окна (или родительское представление других представлений), а затем удалить это представление из представления окна / родителя, используя [theView removeFromSuperview];

Если у вас есть иерархическая структура, то есть вы можете пройти несколько уровней вглубь, от первого представления ко второму, от него к третьему, тогда вам следует рассмотреть использование UINavigationController. Каждый раз, когда вы хотите показать новый вид, вы помещаете его в стек UINavigationController, чтобы вернуться на уровень, на котором вы его отключили (если вы используете панель навигации по умолчанию с кнопкой «Назад», об этом позаботятся). В этой ситуации вам не нужно удалять невидимые представления и воссоздавать их при необходимости, об этом позаботится UINavigationController.

...