Iphone-pushViewController无法在XCode 4.2中工作

问题描述:

我正在使用Xcode 3.2.5中创建的应用程序。我的应用程序在XCode 3.2.5中按预期工作,但由于现在存在一些内存问题,我正在使用Xcode 4.2。Iphone-pushViewController无法在XCode 4.2中工作

Xcode 4.2提供了一种将现有代码转换为ARC [代表自动引用计数]的代码的工具。选择编辑 - >重构... - >转换为Objective-C ARC ...为我工作。

在我的代码中,我使用navigationController在UIbutton单击之间切换视图。 以编程方式创建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中按钮单击正在工作,但navigationController的pushviewController不起作用。

我该如何解决它?

任何帮助将不胜感激。

预先感谢您!

+0

有没有了任何碰撞?代码片段是正确的。 – Ishu

+0

应用程序没有崩溃。按钮单击时没有任何反应,只有NSLog消息出现在控制台中。 – user392406

您是否尝试将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

+0

Thanx stackr,我创建了navigationController以编程方式,所以我把[self.window setRootViewController:navigationController];在appdelegate文件的应用didFinishLaunchingWithOptions函数中...现在navigationController正常工作。 – user392406

+0

欢迎... :) – stackr

+0

更详细地解释为什么可以解决问题,为什么问这个问题。请将它重新制作成答案!在评论中提到我,所以我可以在编辑后删除我的downvote。 – markus