UIBarButtonItem注册按钮旁边的单击事件,而不是按钮

时间:2013-02-28 10:44:02

标签: ios objective-c xcode ipad uibarbuttonitem

我得到了弹出窗口,在我的应用程序中的两个位置使用,一次在导航控制器中一次没有导航控制器, 我在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
    }

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

1 个答案:

答案 0 :(得分:0)

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

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

这样你呈现的viewController保持简单,你知道按钮在导航控制器时有效:)