Abb*_*ore 16 iphone resize uipopovercontroller
我有一个带有子类UINavigationController的UIPopoverController.父视图和子视图都是UITableviews.
当我最初使用contentSizeForViewInPopover =(320,480)调用父视图时,它工作得很好.
当我点击子视图时,我将popover调整为contentSizeForViewInPopover =(320,780)
当返回到父视图时,我无法让popover调整大小,返回到contentSizeForViewInPopover =(320,480).popover保持在(320,780)大小.
一直在尝试一切,只是遗漏了一些东 在上面的场景中,任何人都知道如何使用UIPopoverControllers调整视图大小?
提前致谢!!
cri*_*per 24
contentSizeForViewInPopover视图控制器的属性仅设置其包含的默认(初始)大小UIPopoverController.要UIPopoverController在任意时间调整大小,必须设置其popoverContentSize属性.请注意,这popoverContentSize是视图控制器的属性UIPopoverController而不是视图控制器的属性(因此您可能需要对弹出控制器的引用).
要在每次视图控制器成为a的顶视图控制器时重置弹出框的大小UINavigationController,您可以使用UINavigationControllerDelegate协议方法:
navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (viewController == viewControllerToResize) {
referenceToUIPopoverController.popoverContentSize = CGSizeMake(320,480);
}
}
Run Code Online (Sandbox Code Playgroud)
Chu*_*k H 13
我有同样的问题,但上述解决方案都不适合我.然而,在尝试结合他们的方法时,我受到启发,尝试以稍微不同的方式来解决问题.这对我有用:
-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
viewController.contentSizeForViewInPopover = navigationController.topViewController.view.frame.size;
}
Run Code Online (Sandbox Code Playgroud)
我有三个不同的popovers,每个使用导航视图控制器.这个解决方案具有很好的副作用,因为它不会对任何弹出控制器进行特定的引用,但最终会使用当前正在使用的弹出控制器中的popoverContentSize.
| 归档时间: |
|
| 查看次数: |
16298 次 |
| 最近记录: |