我正在尝试获取一个UIViewController(使用storyboard构建的GUI),以显示触摸/按下DetailDisclosureButton
的时间。我做了一个非常简单的GUI,屏幕上只有一个按钮。我给了它自定义类NFLGameDetailsController
,并且在故事板上没有做任何其他事情。
然后我创建了一个名为NFLGameDetailsController
的类,该类继承自类UIViewController
。
这是Xcode在继承UIViewController
类时生成的代码:
#import "NFLGameDetailsController.h"
@interface NFLGameDetailsController ()
@end
@implementation NFLGameDetailsController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
最后,在我的主控制器上,我将#import "NFLGameDetailsController.h"
添加到我的头文件中,并实现了显示我的UIViewController的方法,如下所示:
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
NFLGameDetailsController *controller = [[NFLGameDetailsController alloc] init];
[[self navigationController] pushViewController:controller animated:YES];
}
此方法被调用,一切似乎都很好,但是当我按下配件详细信息披露按钮时,我得到一个黑屏:
为什么它没有显示我使用故事板创建的GUI?感谢。
答案 0 :(得分:1)
因为你只是在实例化一个类,而不是一个视图
如果你想从代码加载另一个视图,你可以这样做
首先,将Storyboard ID分配给Storyboard编辑器中的viewcontroller(例如NFLGameDetailsController)
然后
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
NFLGameDetailsController *controller = (NFLGameDetailsController *)[self.storyboard instantiateViewControllerWithIdentifier:@"NFLGameDetailsController"];
[[self navigationController] pushViewController:controller animated:YES];
}
但您可以使用storyboard编辑器配置您的tableview及其`单元格以加载另一个没有代码的视图