我正在开发一个在Xcode 3.2.5中创建的应用程序。我的应用程序在XCode 3.2.5中按预期工作,但由于一些内存问题,我现在正在使用Xcode 4.2。
Xcode 4.2提供了一种工具,可将现有代码转换为ARC [代表自动引用计数。]启用代码。选择修改 - >重构...... - >转换为Objective-C ARC ...为我工作。
在我的代码中,我使用navigationController在UI按钮点击之间切换视图。 UIButton以编程方式创建。我正在使用以下代码在button_click上推送视图控制器:
-(void) button_click:(id)sender{
NSLog(@"button_clicked.....");
SecondView *sv = [[SecondView alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:sv animated:NO];
}
在button_click控制台上显示消息 button_clicked ... 。但是pushViewcontroller没有推送SecondView。
pushViewController正在使用XCode 3.2.5 但是在XCode 4.2中按钮点击工作但导航控制器的pushviewController无效。
我该如何解决?
非常感谢任何帮助。
提前谢谢!
答案 0 :(得分:3)
您是否尝试将RootViewController放入MainWindow.xib上的导航控制器?
除了我的回答:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window makeKeyAndVisible];
// create the MyView controller instance:
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];
// set the title that appears in the navigation bar:
[controller.navigationItem setTitle:@"Main View"];
// create the Navigation Controller instance:
UINavigationController *newnav = [[UINavigationController alloc] initWithRootViewController:controller];
// set the navController property:
[self setNavController:newnav];
// release both controllers:
[newnav release];
[controller release];
// add the Navigation Controller's view to the window:
[window addSubview:[navController view]];
return YES;
}
或
[self.window setRootViewController:navigationController];
[self.window makeKeyAndVisible];
详细解释了处理NavigationControllers here