首先让我描述一下问题的背景。我有2 UIViewController
来电AdminViewController
和ButtonReorderViewController
。 AdminViewController
包含1个按钮。 ButtonReorderViewController
包含1个按钮和1张图片。 AdminViewController
中的按钮与事件调用goToReorderButton
相关联。 goToReorderButton
的内容如下:
ButtonReorderViewController *buttonReorder = [[ButtonReorderViewController alloc] initWithNibName:@"ButtonReorderViewController" bundle:[NSBundle mainBundle]];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:buttonReorder]; //Add a Navigation Controller to the root view
[navController setNavigationBarHidden:TRUE];
buttonReorder = (ButtonReorderViewController *) navController;
[[buttonReorder view] setFrame:CGRectMake(0, -20, 320, 470)];
[self.view addSubview:buttonReorder.view];
我使用UINavigationController
允许我向左和向右滑动。所以我在AdminViewController
,然后点击goToReorderButton
,加载ButtonReorderViewController
。我能够向左和向右滑动(太棒了!!!)所以我点击了ButtonReorderViewController
来电goToAdmin
中的按钮,只需返回AdminViewController
-(void) goToAdmin{
[self.view removeFromSuperview];
}
但是,一旦我回到AdminViewController
,我就无法点击任何内容。程序不会出错,只是我根本无法点击按钮。如果我删除buttonReorder = (ButtonReorderViewController *) navController;
中的行goToReorderButton
,那么一切正常。知道如何解决这个问题吗?
答案 0 :(得分:1)
我不确定我是否关注过您,但我认为您应该使用UINavigationController方法在视图控制器之间导航:
管理视图控制器应该是导航控制器的根视图控制器,然后您可以按下并弹出重新排序视图控制器。
在app delegate(applicationDidFinishLaunching:method)中:
// TODO: Instantiate the adminController
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:adminController];
[window addSubview:navController.view];
在AdminViewController中(按钮触摸内部事件处理程序方法):
// TODO: Instantiate the buttonReorder
[self.navigationController pushViewController:buttonReorder animated:YES];
在ButtonReorderViewController中(后退按钮触摸内部事件处理程序方法):
[self.navigationController popViewControllerAnimated:YES];
当然,您必须在使用它们之前实例化视图控制器......
干杯,
迈克尔。
答案 1 :(得分:0)
听起来应用程序在你指出的那条线上崩溃了。调试控制台在崩溃时是否输出任何内容?
看起来线buttonReorder = (ButtonReorderViewController *) navController;
在演员表上失败了。您确定ButtonReorderViewController
延长了UINavigationController
吗?如果没有,那么你就不能这样投。
答案 2 :(得分:-1)
我不确定,但我认为你可以使用NavigationController的PusViewController方法来完成你的工作。