Как я могу отобразить контроллер представления модально, используя родительский контроллер навигации? - PullRequest
0 голосов
/ 22 сентября 2010

Я реализую UITabBar в середине моего стека навигации без UITabBarController. UITabBar находится в DetailViewController, который делегирует часть экрана контроллеру представления, связанному с выбранным элементом вкладки. Внутри одного из контроллеров представления, отображаемых с помощью выбора панели вкладок, есть кнопка UIB, которая должна отображать представление модально. Я попытался [self presentModalViewController:modalNavController animated:YES];, но новая панель навигации была скрыта под панелью навигации родительского контроллера, DetailViewController. Так что я думаю, что мне нужно сделать, это использовать навигационный контроллер родителя для модального представления представления, чтобы новая навигационная панель находилась в верхней части DetailViewController навигационной панели.

Я знаю, что это возможно, потому что у меня есть объявление в DetailViewController, и нажатие на добавление дает мне желаемый результат, но я не смог включить этот код. Я также мог бы, вероятно, отобразить UIButton из DetailViewController, а не subView, но мне нужно использовать этот шаблон несколько раз, поэтому я бы предпочел не работать с таким неординарным хаком, как этот.

СПАСИБО!

EDIT

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

WriteReviewController *newReview = [[WriteReviewController alloc] initWithNibName:@"WriteReviewController" bundle:nil];
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:newReview];
// This is intended to be presented in another view controller class
modalNavController.navigationBar.barStyle = UIBarStyleDefault;  
[self.parentViewController presentModalViewController:modalNavController animated:YES]; 
[modalNavController release];

1 Ответ

0 голосов
/ 22 сентября 2010

Сам подкласс UIViewController или что-то еще?Я успешно сделал вид с помощью контроллера Nav, хотя я обычно не делаю это с пером.Посмотрите, успешно ли вы сначала нажимаете на представление, а затем попробуйте представитьModalView.

Также я рекомендую использовать метод делегата для реализации этого.Хотя это необязательно для того, что вы делаете, вы обнаружите, что позже у вас будет меньше проблем, и, вероятно, это считается «правильным» способом выполнения действий.

...