我检查了类似的问题,但没有一个适合我的情况(他们都提到了我没有的函数 loadView)。我认为我想做的事情很容易,但我不知道为什么会这样。
我希望在按下单元格中的按钮时以编程方式打开新的 View Controller 。这是我的代码:
- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath
{
dealViewController=[[DealViewController alloc]init];
if (indexPath.row==0){
[self presentModalViewControllerUIViewController *)dealViewController animated:TRUE];
}
}
在我的另一个 Controller 中:
@implementation DealViewController
- (id)initWithNibNameNSString *)nibNameOrNil bundleNSBundle *)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.
NSLog(@"Opened");
}
Opened 已打印,但模拟器显示黑屏。我也试过这个:
dealViewController=[[DealViewController alloc]initWithNibName"DealViewController" bundle: nil];
但我遇到了段错误。我做错了什么?
Best Answer-推荐答案 strong>
试试这个:
Apple Doc for StoryBoard
另外,您可以通过 performSegue:withIdentifier 来完成。
A Good Tutorial on same
- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName"<Your StoryBoard_Name" bundle:nil];
dealViewController=[storyboard instantiateViewControllerWithIdentifier"ViewController_Identifiter"];
if (indexPath.row==0){
[self presentModalViewControllerUIViewController *)dealViewController animated:TRUE];
}
}
关于ios - 以编程方式打开一个新的 View Controller 给我一个黑屏,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/17422131/
|