NavigationController из модального вида? - PullRequest
3 голосов
/ 05 апреля 2011

Я использую навигационный контроллер. Мой RootViewController выдвигает несколько представлений, но также представляет модальное представление. Это модальное представление представляет собой tableView. Итак, что я пытаюсь сделать, так это понять, что я могу нажать Navigation Controller через модальное представление, а затем использовать его из этого модального представления, чтобы выдвинуть представление с tableView? или, кроме этого, есть ли способ реализовать второй контроллер навигации из модального представления?

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

У меня есть этот код, который SORT OF обеспечивает переход справа налево, используемый навигационным контроллером:

NewViewController *newViewController = [[NewViewController alloc] init];
[self presentModalViewController:newViewController animated:NO];

CGSize theSize = CGSizeMake(320, 460);
newViewController.view.frame = CGRectMake(0 + theSize.width, 0 + 20, theSize.width, theSize.height);
[UIView beginAnimations:@"animationID" context:NULL];
[UIView setAnimationDuration:0.5];
newViewController.view.frame = CGRectMake(0, 0 + 20, 320, 460);
[UIView commitAnimations];
[newViewController release];

Проблема в том, что OldViewController (вызывающий NewViewController) немедленно исчезает, поэтому NewViewController перемещается по пустому экрану вместо того, чтобы покрывать OldViewController.

1 Ответ

10 голосов
/ 05 апреля 2011

Представление UIViewController модально создает совершенно новый стек навигации. Вы могли бы сделать что-то вроде этого:

//Create the view you want to present modally
UIViewController *modalView = [[UIViewController alloc] init];
//Create a new navigation stack and use it as the new RootViewController for it
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:modalView];
//Present the new navigation stack modally
[self presentModalViewController:nav animated:YES];
//Release
[modalView release];
[nav release];

Это может быть сделано, потому что UINavigationController является подклассом UIViewController. Когда новый вид загружен, вы можете использовать его по своему усмотрению (выдвиньте другой вид поверх него, используя анимацию UIView, такую ​​как Waqas и т. Д. ').

Надеюсь, я правильно понял ваш вопрос. Скажи если я не сделал.

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