iOS: представляет кадр FrameModalViewController - PullRequest
0 голосов
/ 14 июня 2011

У меня есть контроллер навигации с панелью навигации и следующий код.

panel = [[Panel alloc] initWithNibName:@"Panel" bundle:nil];
[self presentModalViewController:panel animated:NO];
panel.view.superview.frame = CGRectMake(250, 180, 550, 400);

Я хочу, чтобы это подпредставление было на панели навигации, и хотя оно работает нормально, я также хочу, чтобы оно имело определенныйРамка;Я не хочу, чтобы мое подпредставление было полноэкранным.Я думал об использовании presentModalViewController, но есть ли другой способ драпировать панель навигации?

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

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

0 голосов
/ 14 июня 2011

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

Для этогопросто добавьте кнопку на панель навигации, здесь у вас есть несколько вариантов или мест, в которые вы можете добавить их. Я обычно использую либо self.navigationItem.rightBarButtonItem, либо self.navigationItem.leftBarButtonItem, но вы также можете поиграть и получить его даже в заголовкеПосмотреть.Ранее я настраивал сегментированный элемент управления в алфавитном порядке в заголовке для панели навигации.

После добавления кнопки все, что вам нужно сделать, - это создать действие, которое будет связано с этой кнопкой и которое будет сравниватьфлаг (переменная экземпляра BOOL) в true или false.Если true, то просто добавьте Subview the pannel.view в self.view, а если false, просто [pannel.view removeFromSuperview].

Не забудьте установить флажок после добавления и удаления представления.

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