iphone - 更改 contentSizeForViewInPopover on navigationController push on iOS

标签 iphone ios navigationcontroller uipopover contentsize

我有一个带有导航 Controller 和一堆 subview 的 UIPopoverController。弹出窗口的大小是在它显示之前设置的,如下所示:

[self.myPopover setPopoverContentSize:CGSizeMake(320, 500)];

这很好用。弹出窗口以调整后的大小显示。当另一个 View 被推送到导航堆栈时,弹出窗口的大小将再次设置 - 需要不同的高度 - 在 vi​​ewWillAppear 方法中:

self.contentSizeForViewInPopover = CGSizeMake(320, 700);

这也很好用。当我返回到上一个 View 时,尺寸没有改变。

我在第一个 View 的 viewWillAppear 中添加了相同的调用,但 View 没有调整大小。

在 View 之间导航时如何调整弹出窗口的大小?

最佳答案

我使用这个技巧:

- (CGSize)contentSizeForViewInPopover
{
    return CGSizeMake(320, 200);
}

- (void) forcePopoverSize 
{
    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, 
                                          currentSetSizeForPopover.height - 1.0f);
    self.contentSizeForViewInPopover = fakeMomentarySize;
}


- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self forcePopoverSize];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    self.contentSizeForViewInPopover = currentSetSizeForPopover;
}

关于iphone - 更改 contentSizeForViewInPopover on navigationController push on iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717754/

相关文章:

ios - 更改默认光标图标 UITextView iOS?

ios - 在 moreNavigationController navigationBar ios 5 中更改图像背景

ios - 尝试对导航 Controller 进行子类化,以便在 iOS 中的横向模式下使用单独的 .xib 文件加载外部 View Controller

iphone - 在 iOS 应用程序中使用 OpenID 登录时,使用 Safari 登录然后重定向回应用程序是否更好?

android - 异常 : View does not have a navController set

iPhone - 如何测量 PCM 编码信号的幅度

iphone - 核心数据集ReturnsDistinctResult不起作用

iphone - AVURLAsset 无法加载远程文件

iphone - 当在 uipickerview 中移动值比出现问题更快时

iOS UIView 背景图片