Iphone-pushViewController在XCode 4.2中无法正常工作

3
我正在开发一个应用程序,它是在Xcode 3.2.5中创建的。我的应用程序在XCode 3.2.5中按预期工作,但由于一些内存问题,现在我正在使用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_clicked….,但pushViewcontroller没有推出SecondView。

在XCode 3.2.5中pushViewController正常工作,但在XCode 4.2中,按钮点击有效,但navigationController的pushViewController却不起作用。

我该如何解决这个问题?

非常感谢任何帮助。

提前致谢!


这段代码有没有崩溃?代码片段是正确的。 - Ishu
应用程序没有崩溃。只有在按钮点击时,控制台中会出现NSLog消息,但没有其他反应。 - user392406
1个回答

3

您尝试在MainWindow.xib中将RootViewController放入导航控制器中吗?

附加回答:

- (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];

在这里详细说明了如何处理导航控制器 点击这里


谢谢 stackr,我已经通过编程方式创建了 navigationController,所以我在 appdelegate 文件的 application didFinishLaunchingWithOptions 函数中添加了 [self.window setRootViewController:navigationController];。现在 navigationController 正常工作。 - user392406
请更详细地解释为什么这可以解决问题,以及为什么您要问出这个问题。请将其改述成一个答案!在评论中提及我,这样我就可以在编辑后取消我的负评。请返回翻译的文本。 - markus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接