【问题标题】:Iphone-pushViewController is not working in XCode 4.2Iphone-pushViewController 在 XCode 4.2 中不起作用
【发布时间】:2011-11-30 07:07:45
【问题描述】:

我正在开发一个在 Xcode 3.2.5 中创建的应用程序。我的应用程序在 XCode 3.2.5 中按预期工作,但由于一些内存问题,我现在使用的是 Xcode 4.2。

Xcode 4.2 提供了一个工具,可以将现有代码转换为 ARC [代表自动引用计数。] 启用的代码。选择 Edit -> Refactor... -> Convert to 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 不工作。

我该如何解决?

任何帮助将不胜感激。

提前谢谢你!

【问题讨论】:

  • 这里面有崩溃吗?代码 sn-p 是对的。
  • 应用程序没有崩溃。按钮单击没有任何反应,只有 NSLog 消息出现在控制台中。

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


【解决方案1】:

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

【讨论】:

  • Thanx stackr,我已经以编程方式创建了 navigationController,所以我把 [self.window setRootViewController:navigationController];在 appdelegate 文件的应用程序 didFinishLaunchingWithOptions 函数中...现在 navigationController 工作正常。
  • 更详细地解释为什么这样可以解决问题,为什么你会问这个问题。请把它改写成答案!在评论中提及我,以便我在编辑后删除我的反对意见。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2012-03-21
相关资源
最近更新 更多