presentViewController 和 UIViewController 布局
Posted
技术标签:
【中文标题】presentViewController 和 UIViewController 布局【英文标题】:presentViewController and UIViewController layout 【发布时间】:2013-08-18 06:58:45 【问题描述】:我有一个 UIViewController,它有一个父 UITabBarController。 一开始,UIViewController 位于 UITabBarController 上方。从地址簿调用返回后,UIViewController 位于其下方(其高度突然增加)
调用是 [self presentViewController:picker animated:YES completion:nil]
picker 是 ABPeoplePickerNavigationController
谢谢,罗伊
【问题讨论】:
当picker出现时,你的tabBar控制器改变了item(tab)? 不,我之后会回到同一个选项卡更改选项卡事件没有触发 什么是self(它的类是什么)? self 是 UIViewController 控制器树是 UIViewController -> UINavigationController -> UITabBarController 无论何时使用presentViewController:
,都应该从全屏视图中调用它。显示一些代码,也许是屏幕截图。
【参考方案1】:
说起来很不一样,您需要什么,我们没有您的代码,但我会尽力提供帮助:
尝试将[self presentViewController:picker animated:YES completion:nil]
改成开启
[self.navigationController presentViewController:picker animated:YES completion:nil]
//or [anyNavController presentViewController:picker animated:YES completion:nil]
如果没有帮助,请尝试在viewDidLoad
中设置 ViewController 的视图(呈现)高度
或者您可以尝试在没有导航控制器的情况下呈现 newView:
newView.bounds = mainView.bounds; //newView can be nextViewController.view
newView.biunds.size.height=newView.biunds.size.height- self.navBar.bounds.size.height;//devide navBar height (you can delete this line)
newView.frame = CGRectMake(newView.frame.origin.x + 784, newView.frame.origin.y, newView.frame.size.width, newView.frame.size.height);
[mainView addSubview:newView];
/* Begin transition */
[UIView beginAnimations:@"Slide Left" context:oldView];
[UIView setAnimationDelegate:self];
[UIView setAnimationDelay:0.0f];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDidStopSelector:@selector(slideInCompleted:finished:context:)];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
newView.frame = CGRectMake(0,0, newView.frame.size.width, newView.frame.size.height);
oldView.frame = CGRectMake(oldView.frame.origin.x - 784, oldView.frame.origin.y, oldView.frame.size.width, oldView.frame.size.height);
[UIView commitAnimations];
post cmets,你的结果如何。
【讨论】:
以上是关于presentViewController 和 UIViewController 布局的主要内容,如果未能解决你的问题,请参考以下文章
presentViewController pushViewController和presentModalViewController
IIViewDeckController 和 presentViewController
如何在封面视图和主页中使用“presentViewController”
presentViewController 和 UIViewController 布局