我在UIViewController
创建了StoryBoard
。现在,我想显示它,使其填充屏幕的仅仅70%(部分显示动画 - 从下到上显示)。我怎么能这样做?
我的代码:
MyViewController *myViewController = [[MyViewController alloc] init];
myViewController.title=@"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 :(得分:0)
听起来你想要的是一个子视图控制器。您必须将其添加为带有框架的子视图,并将其设置为自己动画。
检查文档,您需要为子视图控制器执行一些操作。 https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html
答案 1 :(得分:0)
正如Augie在他的回答中所说,你需要做的是设置一个子视图控制器并将其设置为屏幕上的动画。
最简单的方法是在父视图控制器中创建一个容器视图(Interface Builder中“对象库”中的“搜索”容器视图,并将容器视图拖到父视图控制器上。)然后控制-drag从容器视图到故事板中的另一个场景。这允许您设置“嵌入segue”,在加载父VC时将子视图加载到容器视图中。将它称为segue是误导性的,因为它是一个链接,在父加载时将子VC加载到父级内部,而不是转换到另一个VC,但Apple将其称为嵌入式segue。当父项加载并且调用imbed segue加载子VC时,你的prepareForSegue方法会触发,因此它的行为或多或少就像一个segue。