【发布时间】:2012-12-22 22:09:40
【问题描述】:
我正在尝试获取 UIViewController(使用情节提要构建的 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?谢谢。
【问题讨论】:
-
您的初始化程序表明您已经编写了没有 StoryBoards 的 UI(显然不是这种情况)。要么覆盖 -init 并以编程方式设置,要么使用
performSegueWithIdentifier:sender: -
对不起,我一直在搞乱
performSegueWithIdenitifier:sender:,我只是一头雾水……使用它时,我应该这样称呼它:NFLGameDetailsController *controller = [[NFLGameDetailsController alloc] init]; [self performSegueWithIdentifier:@"gameDetailsSegue" sender:controller]; -
您甚至不必分配和初始化任何东西(情节提要为您完成)
标签: objective-c xcode storyboard xcode-storyboard