相关疑难解决方法(0)

iOS 8 iPhone上的UIPopoverPresentationController

有谁知道是否UIPopoverPresentationController可以用来在iPhone上展示弹出窗口?想知道Apple是否在iOS 8上添加了此功能,试图为iPad和iPhone创建更统一的演示控制器.

不确定是否可以提出/回答Beta的问题.在那种情况下我会删除它.

iphone objective-c uipopovercontroller uipopover ios8

74
推荐指数
3
解决办法
6万
查看次数

iOS9 popover始终指向锚点的左上角

我正在使用一个故事板segue,它将视图控制器呈现为popover.seque有一个自定义UIView作为其锚点.在iOS9之前,popover会正确指向自定义的中心底部UIView(在UIView下面显示).在iOS9上,它指向的左上角UIView.

我确实试图跟踪所有选择器调用到自定义,UIView以找出我可能需要在我的自定义中实现什么,UIView以提供弹出窗口的"热点",但找不到任何东西

有任何想法吗..?谢谢

感谢@Igor Camilo他的回复 - 如果它对某些人有用,这就是我在我的代码中修复它的方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

     UIPopoverPresentationController* possiblePopOver = segue.destinationViewController.popoverPresentationController;
     if (possiblePopOver != nil) {
         //
         // iOS9 -- ensure correct sourceRect
         //
         possiblePopOver.sourceRect = possiblePopOver.sourceView.bounds;
     }
    ...
 }
Run Code Online (Sandbox Code Playgroud)

示例: "短"按钮触发弹出窗口,弹出窗口指向"排序"控件的左上角

结果弹出

Segue设置

uikit uiview ios

34
推荐指数
4
解决办法
2万
查看次数

Popover不以按钮为中心

我试图将一个弹出按钮放在一个按钮上.我似乎无法弄清楚我可能会出错的地方.它不是按钮位于按钮中间,而是偏离屏幕宽度的一半.

 @IBAction func buttonClicked(sender: AnyObject){
    var popoverViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ServiceOptions") as! ServiceOptionsPopover
    popoverViewController.delegate = self
    popoverViewController.modalPresentationStyle = .Popover
    popoverViewController.preferredContentSize   = CGSizeMake(300, 300)

    let popoverPresentationViewController = popoverViewController.popoverPresentationController

    popoverPresentationViewController?.permittedArrowDirections = .Up
    popoverPresentationViewController?.delegate = self
    popoverPresentationViewController?.sourceView = sender as! UIButton
    popoverPresentationViewController?.sourceRect = sender.frame

    presentViewController(popoverViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

uipopovercontroller ios swift

19
推荐指数
2
解决办法
1万
查看次数

以模态方式呈现视图控制器

我在以模式方式使用视图控制器作为登录页面时遇到问题。我可以让控制器出现,但无法更改其全尺寸。

我试图在屏幕中央呈现带有褪色背景的弹出框。当我在视图之外单击时,弹出窗口应该关闭。

我浏览了整个网站的问题和答案,但没有找到对我有用的问题和答案。

这是我的代码:

import UIKit

class SignInView: UIViewController, UIPopoverPresentationControllerDelegate {


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "popoverSegue" {

    var popover = segue.destination as! SignInPopView
    popover.popoverPresentationController!.delegate = self
    popover.modalPresentationStyle = UIModalPresentationStyle.popover
    popover.preferredContentSize = CGSize(width: 375, height: 500)

    }

}
Run Code Online (Sandbox Code Playgroud)

modalviewcontroller ios swift

5
推荐指数
1
解决办法
7990
查看次数

尝试以特定尺寸显示弹出控制器

找到了几个如何使用弹出框的视频,并试图用故事板制作同样的视频,所以我明白了:

在此处输入图片说明

但是,随着应用程序的运行,当我按下按钮时,这个橙色的小控制器会占据所有绿色屏幕,而不是像我预期的那样带有箭头的小弹出框。

popover ios swift

3
推荐指数
1
解决办法
2691
查看次数

UIPopoverPresentationController在iPhone上显示全屏模式

在iPad上,UIPopoverPresentationController可以正常工作,但在iPhone上,它始终显示全窗口模式弹出窗口。我正在使用以下代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
MySecondViewController *contentVC = [storyboard instantiateViewControllerWithIdentifier:@"Pop"];
contentVC.modalPresentationStyle = UINavigationControllerOperationPop; // 13
UIPopoverPresentationController *popPC = contentVC.popoverPresentationController; // 14
contentVC.popoverPresentationController.sourceRect =CGRectMake(100, 130, 280, 230);
self.navigationController.preferredContentSize = CGSizeMake(200, self.parentViewController.childViewControllers.lastObject.preferredContentSize.height-100);
//self.showPop.frame; // 15
contentVC.popoverPresentationController.sourceView =
self.showPop; // 16
popPC.permittedArrowDirections = UIPopoverArrowDirectionAny; // 17
popPC.delegate = self; //18
[self presentViewController:contentVC animated:YES completion:nil];

-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
    return UIModalPresentationNone;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios uimodalpresentationstyle

2
推荐指数
1
解决办法
2027
查看次数