推动到一个没有故事板或笔尖表视图的细节视图?

推动到一个没有故事板或笔尖表视图的细节视图?

问题描述:

我正在构建我的第一个应用程序,而不使用故事板或笔尖。我想从表视图推到一个详细视图,似乎无法找到任何资源,显示如何在没有界面构建器的情况下执行此操作。我的表格视图控制器有一个图片,标题和副标题,我希望所有这些都传递到详细视图,但我希望细节视图也有文本描述。到目前为止,我只能建立我的表格视图控制器。我无法弄清楚如何在没有笔尖的情况下完成剩下的工作。我如何推送到详细视图?如何格式化详细视图?有没有人有我可以看到的任何资源或示例代码?推动到一个没有故事板或笔尖表视图的细节视图?

+0

为什么你不想使用一个nib文件? – Aleph7 2013-03-19 21:14:15

+0

是不是有没有使用故事板或笔尖的特定原因?他们存在的理由很充分:他们让生活变得更加轻松。 – 2013-03-19 21:14:19

+0

这不是我不想使用笔尖文件。这是针对我正在处理的项目,我不应该使用它们。 – Shi201 2013-03-19 21:17:54

制作UIViewController的自定义子类,例如DetailViewController。要格式化它,请在 - [DetailViewController viewDidLoad]中编写代码。

所以,在DetailViewController.m,你可以写:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Add a label with some text. 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 40)]; 
    label.text = @"Some text"; 
    [self.view addSubview:label]; 
} 

注:可能是具有挑战性的空间出来的子视图上面的代码。 Interface Builder可以帮助解决这个问题一个想法是使用Interface Builder将所有东西都分开,然后从Interface Builder获取坐标。你也可以使用nib2objc。

然后,在-tableView:didSelectRowAtIndexPath方法:你的表视图控制器的实现(.M)的文件,你可以写:如果navigationController未实现

DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil]; 
[self.navigationController pushViewController:detailViewController animated:YES]; 

self.navigationController将无法正常工作。我发现了新的方法presentViewController的作品。

DetailViewController *detailVC = [[DetailViewController alloc]initWithNibName:nil bundle:nil]; 
detailVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController:detailVC animated:YES completion:nil];