Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone popover内选择器视图中的问题_Iphone_Ios_Ipad_Uipickerview_Uipopovercontroller - Fatal编程技术网

Iphone popover内选择器视图中的问题

Iphone popover内选择器视图中的问题,iphone,ios,ipad,uipickerview,uipopovercontroller,Iphone,Ios,Ipad,Uipickerview,Uipopovercontroller,我在Ipad中制作应用程序,我在Xib中使用了一个pickerviewController,当用户点击特定按钮时,我会显示它,现在我正在尝试将picker视图放在popover中 这就是我如何尝试达到这个目的 pickerView.hidden=FALSE; i have created outlet of picker and i unhide it here UIViewController* popoverContent = [[UIViewController alloc]

我在Ipad中制作应用程序,我在Xib中使用了一个pickerviewController,当用户点击特定按钮时,我会显示它,现在我正在尝试将picker视图放在popover中 这就是我如何尝试达到这个目的

pickerView.hidden=FALSE;
i have created outlet of picker and i unhide it here 

    UIViewController* popoverContent = [[UIViewController alloc] init];
    UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)];
    popoverView.backgroundColor = [UIColor whiteColor];


    [popoverView addSubview:pickerView];
    popoverContent.view = popoverView;


    popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 244);

    //create a popover controller
  UIPopoverController  *popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
    CGRect popoverRect;
    popoverRect.origin.x =323;
    popoverRect.origin.y = 713;
    popoverRect.size.height = 215;
    popoverRect.size.width = 70;




    [popoverController presentPopoverFromRect:popoverRect
     inView:self.view
     permittedArrowDirections:UIPopoverArrowDirectionDown
     animated:YES];


    //release the popover content
    [popoverView release];
    [popoverContent release];

现在的问题是,我的弹出窗口正在显示,但它完全是黑色的。我正在努力解决这个问题。请告诉我我做错了什么,或者更正代码。谢谢您的帮助。

由于框架尚未正确设置,您的选取器视图似乎隐藏在弹出窗口的某个位置。因此,尝试将选择器视图的框架设置为等于弹出框的边界作为起点:

pickerView.frame = popoverView.bounds;
但是,在将选择器视图添加为弹出视图中的子视图之前,需要从superview中正确删除选择器视图

现在,默认情况下,Xcode将IBOutlet生成为弱属性,这将导致在从superview中删除选择器视图时取消分配它。因此,首先需要将选择器视图声明为强属性

之后,可以将其从当前superview中删除:

[pickerView removeFromSuperview];

您应该保留对弹出视图控制器的引用,例如声明它是一个属性,并调用DismissPopoOveranimated以正确地关闭弹出视图。

尝试将选择器视图的帧设置为等于弹出边界。您还应该从以前的superview中删除pickerview。我知道如何将pickerview设置为与popover相同的视图,但如何从superview中删除它。您可以演示一些我也不知道如何设置大小的内容吗:(请尝试
[pickerview removeFromSuperview];
并且您需要将pickerView设置为strong属性,以便从superview中删除后不会释放它。请尝试使用
pickerView.frame=popoverView.bounds;
设置框架。