推动到一个没有故事板或笔尖表视图的细节视图?
问题描述:
我正在构建我的第一个应用程序,而不使用故事板或笔尖。我想从表视图推到一个详细视图,似乎无法找到任何资源,显示如何在没有界面构建器的情况下执行此操作。我的表格视图控制器有一个图片,标题和副标题,我希望所有这些都传递到详细视图,但我希望细节视图也有文本描述。到目前为止,我只能建立我的表格视图控制器。我无法弄清楚如何在没有笔尖的情况下完成剩下的工作。我如何推送到详细视图?如何格式化详细视图?有没有人有我可以看到的任何资源或示例代码?推动到一个没有故事板或笔尖表视图的细节视图?
答
制作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];
为什么你不想使用一个nib文件? – Aleph7 2013-03-19 21:14:15
是不是有没有使用故事板或笔尖的特定原因?他们存在的理由很充分:他们让生活变得更加轻松。 – 2013-03-19 21:14:19
这不是我不想使用笔尖文件。这是针对我正在处理的项目,我不应该使用它们。 – Shi201 2013-03-19 21:17:54