Iphone-pushViewController在XCode 4.2中不起作用

时间:2011-11-30 07:07:46

标签: iphone objective-c uinavigationcontroller xcode4.2 automatic-ref-counting

我正在开发一个在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无效。

我该如何解决?

非常感谢任何帮助。

提前谢谢!

1 个答案:

答案 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