2015-09-18 2 views
0

У меня есть UIViewController, созданный в StoryBoard. Теперь я хочу отобразить его, чтобы он заполнял ТОЛЬКО 70% экрана (отображает частично с анимацией, появляющейся снизу вверх). Как я могу это сделать ?Показать UIViewController снизу с анимацией

Мой код:

MyViewController *myViewController = [[MyViewController alloc] init]; 
    [email protected]"title"; 
[myViewController.view setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height*0.7)]; 
[self myViewController animated:YES completion:nil]; 

Что я вижу, это черный вид покрытия на весь экран. Как его решить.

Примечание: Я не хочу использовать UIView.

+0

«Я не хочу использовать UIView» - представление - это представление, а контроллер вида управляет представлением; они не являются взаимозаменяемыми понятиями. То, что вы * вероятно * хотите, - это представление, которое охватывает 70% вашего текущего вида и * управляется * с помощью контроллера вида. – Krumelur

+0

Вы не можете сделать это с помощью viewcontroller. Используйте 'UIView' – Nishant

ответ

0

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

Проверьте документацию, вам нужно сделать несколько действий для контроллеров детского просмотра. https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html

0

Как говорит Ауги в своем ответе, вам нужно настроить контроллер детского вида и анимировать его на экране.

Самый простой способ сделать это - создать представление контейнера в контроллере родительского представления («Поиск по» в представлении контейнера в «библиотеке объектов» в Interface Builder и перетащить вид контейнера на родительский контроллер представления). Затем control-drag из этого вида контейнера в другую сцену в вашем раскадровке. Это позволяет настроить «embed segue», который загружает дочерний вид в представление контейнера при загрузке родительского VC. Неверно назвать это segue, так как это ссылка, которая загружает дочерний VC внутри родителя, когда родитель загружается, а не переход на другой VC, но Apple называет его встроенным segue. Метод prepareForSegue срабатывает, когда родитель загружается, и вложенное segue вызывается для загрузки дочернего VC, поэтому он действует больше или меньше, чем в режиме segue.

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