在iOS上的navigationController push上更改contentSizeForViewInPopover

Bor*_*zin 5 iphone navigationcontroller ios contentsize uipopover

我有一个带有navigationController和一堆子视图的UIPopoverController.弹出窗口的大小在它显示之前设置如下:

[self.myPopover setPopoverContentSize:CGSizeMake(320, 500)];
Run Code Online (Sandbox Code Playgroud)

这很好.弹出窗口显示调整大小.当在导航堆栈上按下另一个视图时,再次设置弹出窗口的大小 - 需要不同的高度 - 在viewWillAppear方法中:

self.contentSizeForViewInPopover = CGSizeMake(320, 700);
Run Code Online (Sandbox Code Playgroud)

这也很好.当我回到之前的视图时,大小不会改变.

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

如何在视图之间导航时管理弹出框的大小调整?

Inj*_*ios 3

我使用这个技巧:

- (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;
}
Run Code Online (Sandbox Code Playgroud)