Objective c 如何正确显示两个连续的超控器?
当用户点击UIButton时,我想在popover控制器中显示一个自定义菜单。然后我想展示另一个菜单,当用户按下另一个按钮时使用完全相同的方法 我的问题是:当用户按下第一个按钮时,弹出窗口就会出现在我的菜单中,这没关系。但是,当他按下第二个按钮时,我的应用程序并没有关闭第一个弹出框,而是用第二个菜单显示第二个弹出框,而是关闭了第一个弹出框。然后,当用户按下第二个按钮时,就会出现第二个弹出窗口。因此,用户必须按两次才能看到第二个菜单 以下是我如何创建菜单和弹出框:Objective c 如何正确显示两个连续的超控器?,objective-c,ipad,uipopovercontroller,Objective C,Ipad,Uipopovercontroller,当用户点击UIButton时,我想在popover控制器中显示一个自定义菜单。然后我想展示另一个菜单,当用户按下另一个按钮时使用完全相同的方法 我的问题是:当用户按下第一个按钮时,弹出窗口就会出现在我的菜单中,这没关系。但是,当他按下第二个按钮时,我的应用程序并没有关闭第一个弹出框,而是用第二个菜单显示第二个弹出框,而是关闭了第一个弹出框。然后,当用户按下第二个按钮时,就会出现第二个弹出窗口。因此,用户必须按两次才能看到第二个菜单 以下是我如何创建菜单和弹出框: CascadeMenuViewC
CascadeMenuViewController *cascadeMenuViewController = [[CascadeMenuViewController alloc] initWithNibName:@"CascadeMenuViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:cascadeMenuViewController];
[cascadeMenuViewController release];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
_popoverMenuView = [[UIPopoverController alloc] initWithContentViewController:navigationController];
[navigationController release];
[_popoverMenuView presentPopoverFromRect:_currentlyTouchedButtonView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
if (_popoverMenuView) {
[_popoverMenuView dismissPopoverAnimated:YES];
[_popoverMenuView release];
_popoverMenuView = nil;
}
以下是当用户从popover内的菜单中选择sthg时,我如何关闭popover:
CascadeMenuViewController *cascadeMenuViewController = [[CascadeMenuViewController alloc] initWithNibName:@"CascadeMenuViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:cascadeMenuViewController];
[cascadeMenuViewController release];
navigationController.navigationBar.barStyle = UIBarStyleBlack;
_popoverMenuView = [[UIPopoverController alloc] initWithContentViewController:navigationController];
[navigationController release];
[_popoverMenuView presentPopoverFromRect:_currentlyTouchedButtonView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
if (_popoverMenuView) {
[_popoverMenuView dismissPopoverAnimated:YES];
[_popoverMenuView release];
_popoverMenuView = nil;
}
你能告诉我我做错了什么吗
Thx提前…发生的情况如下:
passthroughview
覆盖此机制,这是一个视图列表,可将点击转发给它们passthroughview
中的一个视图),弹出窗口不会自动关闭;因此,在您的情况下,您必须自行关闭,当点击按钮时,您将打开第二个弹出窗口当用户点击第二个按钮时,您是否会取消第一个popover?或者你是如何尝试并关闭它的?当用户从弹出窗口中选择一个菜单项时,我将取消它。我的意思是,从上面的代码开始,它以if(_popoverMenuView)…开始,然后当用户按下第二个按钮时,我正在创建一个新的UIPopoverController并将其分配给_popover,就像用户按下第一个按钮时一样。(上面的第一段代码)耶!这就是解决办法。在alloc初始化之后,我给出了我的第一个和第二个按钮视图数组作为popover的passthroughview。然后,我在每次按下按钮和用户从弹出框内的菜单中选择sthg时都取消了它。瑟吉奥!