0

我得到了弹出窗口,在我的应用程序中的 2 个位置使用,一次在导航控制器中,一次在没有导航控制器的情况下,我在 uitoolbar (选择按钮)中有一个按钮,但是这个按钮由于某种原因有它自己的生命

导航控制器中的那个工作正常。

但是没有导航控制器调用的那个会调整这个弹出窗口的大小,所以我在代码中调整了它的大小,比如

    - (void)showModal:(UIViewController *)controller
    {
        [controller setModalPresentationStyle:UIModalPresentationFormSheet];
        [self presentViewController:controller animated:NO completion:nil]; //Method used without navigationcontroller
        [controller.view setBounds:CGRectMake(0,0, 600, 748)]; //resize => button doesn't work at all
        //[controller.view setFrame:CGRectMake(0, 0, 600, 748)]; //resize => button only registers click event left from the actual button
        //[[NSNotificationCenter defaultCenter] postNotificationName:@"show modal" object:controller]; // Method used within navigationcontroller
    }

我一直在谷歌上寻找,但我找不到关于这个问题的任何东西。希望我在这里有更多的运气。

4

1 回答 1

0

解决这个问题的简单方法可能是将它放在 UINavigationController 中并使用它来弹出。然后你不必使用 UIToolBar。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewControllerToPopUp];
    [viewController setModalPresentationStyle:UIModalPresentationFormSheet];
    [self presentModalViewController:navController animated:YES];

这样,您呈现的 viewController 将保持简单,并且您已经知道该按钮在作为导航控制器时可以工作:)

于 2013-02-28T12:03:19.230 回答