出于某种原因,按下 homeButton 后我的 Nib 无法加载。但是,NSLogs 正确执行。
- (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 做任何你想做的事。
关于iphone - 我的 Nib 无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14530626/