Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.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
Popover适用于IOS 7.1,但在IOS 8.3中为空_Ios_Ios8_Uipopovercontroller_Ios7.1_Uipopover - Fatal编程技术网

Popover适用于IOS 7.1,但在IOS 8.3中为空

Popover适用于IOS 7.1,但在IOS 8.3中为空,ios,ios8,uipopovercontroller,ios7.1,uipopover,Ios,Ios8,Uipopovercontroller,Ios7.1,Uipopover,我的popover在IOS 7.1中正常工作,但在IOS 8.3中显示为空 self.view.endEditing(true); let timeViewStoryboard : UIStoryboard?; if UI_USER_INTERFACE_IDIOM() == .Pad { //IF IPAD NSLog("PAD"); timeViewStoryboard = UIStoryboard(name: "Stor

我的popover在IOS 7.1中正常工作,但在IOS 8.3中显示为空

    self.view.endEditing(true);
    let timeViewStoryboard : UIStoryboard?;
    if UI_USER_INTERFACE_IDIOM() == .Pad {
        //IF IPAD
        NSLog("PAD");
        timeViewStoryboard = UIStoryboard(name: "StoryboardiPad", bundle: nil);
    }
    else {
        //IF IPHONE
        timeViewStoryboard = UIStoryboard(name: "Main", bundle: nil);
    }

    let timePickerViewController : TimePickerViewController = timeViewStoryboard!.instantiateViewControllerWithIdentifier("TimePickerViewController_ID") as! TimePickerViewController;
    if UI_USER_INTERFACE_IDIOM() == .Pad {
        //Delegating
        //timePickerViewController.delegate = self;
        if (self.view.window != nil) {
            timePickerViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
            let popover = UIPopoverController(contentViewController: timePickerViewController);
            timePickerViewController.parentPopover = popover;
            let height = self.view.frame.height;
            let width = self.view.frame.width;
            popover.presentPopoverFromRect(CGRectMake(width/2,  44, 1, 1), inView: self.view, permittedArrowDirections: UIPopoverArrowDirection.Up, animated: true);
        }
    }  
这是我用来显示popover的

timePickerViewController.modalPresentationStyle = .Popover;
                timePickerViewController.preferredContentSize = timePickerViewController.view.frame.size;
                let popoverTimePickerViewController = timePickerViewController.popoverPresentationController;
                popoverTimePickerViewController?.permittedArrowDirections = .Any;
                popoverTimePickerViewController?.delegate = self;
                popoverTimePickerViewController?.sourceView = self.view;
                let height = self.view.frame.height;
                let width = self.view.frame.width;
                popoverTimePickerViewController?.sourceRect = CGRectMake(width - 93,  35, 1, 1);
                presentViewController(timePickerViewController, animated: true, completion: nil);
这是iOS 7.1上的外观:

这是iOS 8.3上的外观:

谢谢你的帮助

编辑3:我现在发现它肯定不是我的代码。在直接从故事板按钮开始的情况下,也不会显示任何内容

编辑2:我也尝试过使用不同的方法创建popover

timePickerViewController.modalPresentationStyle = .Popover;
                timePickerViewController.preferredContentSize = timePickerViewController.view.frame.size;
                let popoverTimePickerViewController = timePickerViewController.popoverPresentationController;
                popoverTimePickerViewController?.permittedArrowDirections = .Any;
                popoverTimePickerViewController?.delegate = self;
                popoverTimePickerViewController?.sourceView = self.view;
                let height = self.view.frame.height;
                let width = self.view.frame.width;
                popoverTimePickerViewController?.sourceRect = CGRectMake(width - 93,  35, 1, 1);
                presentViewController(timePickerViewController, animated: true, completion: nil);
但是这种方法也不起作用

但是,我发现对于UITableViewController而不是UIViewController,popover不会显示为空。此时将显示UITableViewController的单元格


编辑:我添加了一些图片,以更好地显示我的问题。如果有人需要更多的信息来解决我的问题,请询问,我会乐意提供尽可能多的信息。谢谢

TimePickerViewController上的.parentPopover属性是什么?稍后,我通过给视图控制器一个对其所在的popover的引用,利用它来关闭popover。我这样做的原因是因为创建popover的新方法只适用于ios8,而不适用于ios7。实际上,我发现了一些新的内容,将发布一个编辑。TimePickerViewController上的.parentPopover属性是什么?稍后,我将通过向视图控制器提供对其所在的popover的引用来使用它来取消popover。我这样做的原因是因为创建popover的新方法只适用于ios8,而不适用于ios7。我实际上发现了一些新的东西,并将发布一个编辑。