【发布时间】:2010-05-03 12:52:59
【问题描述】:
我正在创建一个基于实用程序模板的应用程序。主屏幕由一个带有多个按钮的菜单组成,每个按钮创建一个不同的翻转视图。在其中一个翻转视图中,我还配置了一个导航控制器,只要我激活了 NavigationBar,它就可以完美地工作......我可以推送视图,但我必须使用“后退”按钮返回到我的翻转 -侧视图,这将是导航控制器的根。如果我尝试使用正确配置了按钮的“popViewControllerAnimated”而不是 NavigationBar 的“返回”按钮返回,就会出现问题。我的应用程序由于某种原因崩溃了,我不明白为什么。
我可以只使用 NavigationBar 中的“返回”按钮而忘记问题,但我更愿意拥有自己的按钮以便返回。
我的应用包含以下内容:
我的 APPDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MenuViewController *menuController = [[MenuViewController alloc] initWithNibName:@"MenuView" bundle:nil];
self.menuViewController = menuController;
[menuController release];
menuViewController.view.frame = [UIScreen mainScreen].applicationFrame;
[window addSubview:[menuViewController view]];
[window makeKeyAndVisible];
return YES;
}
MenuViewController.m 开始我的反面视图:
- (IBAction)showFuelUpliftView {
FuelUpliftViewController *controller = [[FuelUpliftViewController alloc]
initWithNibName:@"FuelUpliftView" bundle:nil];
controller.delegate = self;
controller.title = @"Fuel Uplift";
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
[navController setNavigationBarHidden: NO];
navController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navController animated:YES];
[navController release];
[controller release];
}
FuelUpliftViewController.m,在这里我用一个按钮推动 NavigationController 的第二个视图:
- (IBAction)showFuelUplift2View:(id)sender {
UIViewController *controller = [[UIViewController alloc] initWithNibName:@"FuelUplift2View" bundle:nil];
controller.title = @"Settings";
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
最后,我的 FuelUplift2ViewController.m,应用程序在尝试返回时崩溃:
- (IBAction)backFromFuelUplift2View {
[self.navigationController popViewControllerAnimated:YES];
}
我不知道这一切是否有意义,我目前正在开始我的第一个应用程序,并且由于传统的试错法,我仍在学习。不过,我看不出这个问题的原因,如果能得到任何帮助,我将不胜感激。
非常感谢,
手动
【问题讨论】:
-
调试内存问题我发现以下文章非常有用:cocoadev.com/index.pl?DebuggingAutorelease 具体而言,我建议您设置
NSZombieEnabled和MallocStackLogging环境变量并检查究竟是什么失败了。 -
我会试试看会发生什么,谢谢你的建议!
标签: objective-c iphone-sdk-3.0 uinavigationcontroller