从现有控制器创建UIPopoverController

时间:2012-08-24 21:53:51

标签: objective-c ios view uipopovercontroller

我想在我的应用程序中使用UIPopoverController并尝试this example.问题是该示例中的视图和控制器是从代码创建的。

   UIViewController* popoverContent = [[UIViewController alloc]
                  init];
   UIView* popoverView = [[UIView alloc]
                  initWithFrame:CGRectMake(0, 0, 200, 300)];
   popoverView.backgroundColor = [UIColor greenColor];
   popoverContent.view = popoverView;

我想使用现有的控制器及其弹出窗口的xib文件。如何将弹出窗口链接到现有控制器?我是否需要以某种特殊方式创建控制器视图以使其与弹出窗口的尺寸相匹配?

2 个答案:

答案 0 :(得分:1)

是的,你可以:

    MyUIViewController* content = [[MyUIViewController alloc] initWithNibName:@"myNib" bundle: nil];
    // additional initialization in loadView

    UIPopoverController* aPopover = [[UIPopoverController alloc]
                                     initWithContentViewController:content];

答案 1 :(得分:0)

如果要使用现有的xib,只需使用nitWithNibName:bundle:方法初始化viewController。当你使用xib初始化时,你的viewController的视图层次结构将被实例化。

UIViewController* popoverContent = [[UIViewController alloc] initWithNibName:@"yourXibName" bundle:nil];

初始化时不要担心调整视图大小 - 在设置属性contentSizeForViewInPopover时,在下一行中引用的示例代码中调整视图的大小。