iOS:presentModalViewController框架

时间:2011-06-14 17:21:03

标签: objective-c ios xcode uinavigationbar presentmodalviewcontroller

我有一个导航控制器,带有导航栏和以下代码。

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

我希望这个子视图位于导航栏上,虽然工作正常但我也希望它有一个特定的框架;我不希望我的子视图是全屏的。我考虑过使用presentModalViewController,但还有其他方法来覆盖导航栏吗?

2 个答案:

答案 0 :(得分:0)

添加到导航栏的任何内容实际上都是一个视图。你有一些选择。我不认为您想要导航栏上的整个视图,因为它太大了,所以我假设您想要通过按导航栏上的按钮来显示视图。

为此,只需在导航栏中添加一个按钮,此处您可以添加几个选项或地点。我通常使用self.navigationItem.rightBarButtonItemself.navigationItem.leftBarButtonItem,但您也可以在标题视图中玩耍并获得它。我在过去设置了导航栏titleView中的字母分段控件。

添加按钮后,您所要做的就是创建将连接到该按钮的操作,该操作将标志(BOOL实例变量)与true或false进行比较。如果为true,则只需将pannel.view的子视图添加到self.view,如果为false,则为[pannel.view removeFromSuperview]

添加和删除视图后,请不要忘记设置标记。

答案 1 :(得分:0)

我不完全确定你要在这里完成什么,但我怀疑你当前的代码是正确的解决方案。在iPhone UIViewController的视图应该填充他们的窗口,你不应该试图调整视图控制器的视图框架的大小或获取模态呈现的UIViewController的视图来填充少于全屏幕。您能更具体地了解当前控制器和视图结构的外观以及您希望构建的效果吗?