我对以下实例所需的对象所有权模式有些不清楚.当我的UIViewController将弹出控制器,操作表或其他视图控制器呈现为模态时,我是否需要挂起对该子控制器的保留引用,直到它被解除为止?
换句话说,以下几行代码是否有效地"转移"了所有权?
[aPopoverController presentPopoverFromBarButtonItem:someButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
[anActionSheet showFromBarButtonItem:someButtonItem animated:NO];
[aViewController presentModalViewController:someOtherViewController animated:YES];
有人能指出我关于这个主题的明确文件吗?
我想知道制作一个没有箭头的UIPopoverController其实我想模拟这样的东西:

看到了
没有箭头
有一个标题在UIPopoverController的扩展顶部边框内部,而不是像普通的UIPopoverController一样.
我假设这不是一个真正的UIPopoverController对象,但我会欣赏有关如何产生相同效果的建议(使用CoreGraphics? - >特别是3D优秀边框的半透明降级效果)和/或链接到某些来源(如果有人已经完成)这之前.
提前致谢.
伊格纳西奥
编辑:
我仍在寻找这些东西,并意识到即使在第三方应用程序正在使用的例子是:twitterrific for iPad,如图所示.有人请?将标题放在popovercontroller中只是丑陋的.

我正在将应用程序转换到相当流畅的iOS 7,有一点我无法弄清楚.
我有一个带有几个按钮的视图控制器,我用UIPopoverController显示.
在我看来,像弹出控制器正在做一些事情来剪切它的视图控制器的内容被舍入.
iOS6(我想要这个):

iOS7(改变了一些东西):

我正在使用这里描述的自定义popover控制器后台类http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller
这是我的背景类http://pastebin.com/fuNjBqwU的特定版本
有没有人知道要改变什么才能让它回到我的iOS 6外观?
我想为iPad创建一个新的键盘.
我设计了一个视图,其中包含键和所有底层工作,当用户按下键时填充文本框,并在用户按下返回按钮时将值传递回调用例程.
一切正常.
现在 - 我想将此视图创建为弹出窗口.
我完成了基本操作(弹出并被解雇)
但现在我需要一些微调帮助.
这是我的问题......
1)如何在没有UIPopoverArrowDirectionAny选择的情况下创建以屏幕为中心的弹出窗口?
2)确保弹出窗口是我在XIB文件中创建它的大小(当前,它调整大小并删除一些最右边的窗口大小)
感谢
托尼
我想在我的iPad应用程序中显示UIImagePickerControl.起初,调试器告诉我,当我在iPad上进行操作时,我需要将其置于弹出框中.所以我写了下面的代码:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
                         inView:self.view
       permittedArrowDirections:UIPopoverArrowDirectionAny 
                       animated:YES];
但是,现在我收到以下错误: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.'
关于我应该做什么的任何建议?我知道self.view 应该有一个窗口,但显然......它不是吗?
我的Split-View应用程序中有UIPopoverController,我只需要更长时间的弹出窗口.在DetatilViewController的viewDidLoad中我放了:
self.popoverController.popoverContentSize=CGSizeMake(320, 1400);
什么都没发生(什么时候应该放这个?谢谢
做完了^^^如何设置Popover的背景?thaanks
我想在单击UIButton时呈现UIPopoverController.这是我的代码:
- (IBAction)showColumnChooser:(id)sender {
    ColumnChooserTVC *vc = [[ColumnChooserTVC alloc] init];
    [vc setSelections:allColumns];
    [vc setDelegate:self];
    UIPopoverController *pc = [[UIPopoverController alloc] initWithContentViewController:vc];
    [pc presentPopoverFromRect:[sender frame] inView:self.view 
      permittedArrowDirections:UIPopoverArrowDirectionAny 
                      animated:YES];
    [vc release];
}
箭头方向为"任意",它完全遮盖了按钮,这是它的样子:

如果我的方向是"正确的",它会好一点,但仍然有一些弹出窗口和按钮之间的空间,它似乎不对. 
 我不想做一些"技巧"或"黑客"并在试验/错误的基础上使用CGRect,我想知道这样做的正确方法是什么?谢谢.
我不想做一些"技巧"或"黑客"并在试验/错误的基础上使用CGRect,我想知道这样做的正确方法是什么?谢谢.
这是Neckto要求的界面构建器中的按钮:

我分配了popover对象o它的contentViewController,我将dismiss代码放在一个位于内容视图控制器中的按钮中.
按下按钮时:
 [self.popover dismissPopoverAnimated:YES];
被叫,弹出被解雇.但是,不会自动调用委托的方法.我以为我没有设置它的代表,但它就在那里.如果我在dismissPopoverAnimated行之后添加以下行,则正确调用delegate ...
 [self.popover.delegate popoverControllerDidDismissPopover:self.popover];
我不明白为什么它不"自动"调用委托的方法.怎么会发生这种情况?
UIPopoverController中的setContentViewController方法似乎导致iOS 8中的应用程序崩溃.只是想知道是否还有其他人在iOS 8中遇到此问题.这在iOS 7中没有任何问题.
异常中指出的错误似乎是误导性的,因为它声明应该在呈现弹出窗口后调用setContentViewController
- (void)buttonPressed {
UIViewController *tableViewController = [UIViewController new];
if(_popover == nil){
    _popover = [[UIPopoverController alloc] initWithContentViewController:tableViewController];
    [_popover presentPopoverFromRect:CGRectMake(self.textField.frame.size.width / 2, self.textField.frame.size.height / 1, 1, 1) inView:self.textField permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}else{
    [_popover setContentViewController:tableViewController];
}    
}
这是崩溃的堆栈跟踪,
2014-09-11 16:48:39.904 iOS 8 Rotation[3969:67869] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController setContentViewController:animated:] can only be called after the popover has been presented.'
*** First throw call stack:
(
    0   CoreFoundation                      0x01c79df6 __exceptionPreprocess + 182
    1   libobjc.A.dylib                     0x01903a97 …所以我有一个UIPopoverController房子UINavigationController,我有我的地方UITableViewController但是我的一个选择UITableView是去选择一个图像与UIImagePickerController...现在在iPhone上,我可以简单地使用presentModalViewController:animated:但是从UIPopoverController内调用,导致崩溃,所以这不可能...
我也知道UIImagePickerController它自己的需求UINavigationController所以我不能只推动pushViewController:animated:......
所以我想出如果我保留了UIPopoverController我创建的链接,那么我可以setContentViewController:animated:用来切换到UIImagePickerController的viewController ......
但是,我现在坚持让用户回到之前的方式,UINavigationController因为我需要能够添加一个取消按钮UIImagePickerController但是当我尝试这样做时,取消按钮将不会被添加...
继承我正在使用的代码
-(void)doPhotoalbums {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        [imagePicker setDelegate:self];
        [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
        [imagePicker setContentSizeForViewInPopover:CGSizeMake(320, 480)];
        UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:nil];
        [imagePicker.navigationItem setLeftBarButtonItem:cancel];
        //[self presentModalViewController:imagePicker animated:YES];
        [[self parentPopoverController] setContentViewController:imagePicker animated:YES];
    } else {
        [UIAlertView showMessage:@"This device does not have any photo albums."]; …objective-c uikit uiimagepickercontroller uipopovercontroller ios