0

由于某种原因,按下 homeButton 后我的笔尖无法加载。但是,NSLog 会正确执行。

- (IBAction)homePressed:(id)sender {
    NSLog(@"hi");
  [[NSBundle mainBundle] loadNibNamed:@"rewardViewController" owner:self options:nil];
    NSLog(@"hey");
}

有人知道这段代码有什么问题吗?

谢谢!

4

1 回答 1

3

您的代码在语法上没有任何问题,但我怀疑您可能误解了 loadNibNamed 将为您做什么。如果您尝试通过加载新的 nib 文件来更改屏幕,那么您想探索 UINavigationController。

您的代码看起来更像这样:

    UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"ViewControllerName" bundle:nil];
[self.navigationController pushViewController:viewController animated:YES];

如果您确实打算像上面那样使用 loadNibNamed,则需要将其分配给某些东西以使其有用。例如,如果您的 nib 包含 UIViewController 的实例,您可能会执行以下操作:

UIViewController *viewController = [[NSBundle mainBundle] loadNibNamed:@"rewardViewController" owner:self options:nil];

这将使用您的 nib 文件的内容创建一个 UIViewController 的新实例。然后你可以用那个 UIViewController 做任何你想做的事情。

于 2013-01-25T21:29:48.880 回答