我的设置是使用故事板创建登录,然后是主屏幕,用户可以在其中按下按钮显示他们的消息。
这些显示在以编程方式实例化的表中。
从这个表中我想按一行来详细了解该行,但是当我这样做时,显示的视图是空白的,但是与该类关联的所有方法都被触发(视图确实已加载,等等)
我已经尝试了10种不同的方式,从其他人在他们的问题上提出的不同解决方案,但没有任何作用。
创建新视图并推送它的代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
messageDetail *messageDetailView = [[messageDetail alloc]initWithNibName:nil bundle:nil];
messageDetailView.message = [entityObjects objectAtIndex:indexPath.row];
[self.navigationController pushViewController:messageDetailView animated:YES];
}
DetailView的ViewDidLoad:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"Message Detail:\n%@",message);
messageTitle.text = message.message_title;
messageBody.text = message.message_xml;
}
我尝试过使用segueIdentifier路由,然后拦截prepareSegue:将数据添加到新视图中,但是当以编程方式创建tableView时,没有segue。
我尝试通过以下方式从故事板中实例化视图:
messageDetailView = [self.storyboard instantiateViewControllerWithIdentifier:@"MDV"];
但即使我设置了标识符,应用程序也会崩溃,因为没有带标识符的视图。
答案 0 :(得分:0)
您发送nil作为nib名称,如果您没有nib文件,请不要使用initWithNibName函数分配消息详细信息视图。
使用原始init或initWithFrame。无论哪个适合你。
祝你好运答案 1 :(得分:0)
我在这里使用此代码基本上做了同样的事情。希望这有帮助
Detail_View *next=[[Detail_View alloc] initWithNibName:@"Detail_View" bundle:nil];
//These are just values that I needed to set before going to the next page.
//You can use this if you want to pass over the value of your table row
//otherwise ignore this
next.htmlContents= [[storage_array objectAtIndex:indexPath.row]objectForKey:@"title"];
next.titleText=[[storage_array objectAtIndex:indexPath.row] objectForKey:@"title"];
[self.navigationController pushViewController:next animated:YES];