由于某种原因,按下 homeButton 后我的笔尖无法加载。但是,NSLog 会正确执行。
- (IBAction)homePressed:(id)sender {
NSLog(@"hi");
[[NSBundle mainBundle] loadNibNamed:@"rewardViewController" owner:self options:nil];
NSLog(@"hey");
}
有人知道这段代码有什么问题吗?
谢谢!
您的代码在语法上没有任何问题,但我怀疑您可能误解了 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 做任何你想做的事情。