2013-03-19 189 views
1

我正在構建我的第一個應用程序,而不使用故事板或筆尖。我想從表視圖推到一個詳細視圖,似乎無法找到任何資源,顯示如何在沒有界面構建器的情況下執行此操作。我的表格視圖控制器有一個圖片,標題和副標題,我希望所有這些都傳遞到詳細視圖,但我希望細節視圖也有文本描述。到目前爲止,我只能建立我的表格視圖控制器。我無法弄清楚如何在沒有筆尖的情況下完成剩下的工作。我如何推送到詳細視圖?如何格式化詳細視圖?有沒有人有我可以看到的任何資源或示例代碼?推動到一個沒有故事板或筆尖表視圖的細節視圖?

+0

爲什麼你不想使用一個nib文件? – Aleph7 2013-03-19 21:14:15

+0

是不是有沒有使用故事板或筆尖的特定原因?他們存在的理由很充分:他們讓生活變得更加輕鬆。 – 2013-03-19 21:14:19

+0

這不是我不想使用筆尖文件。這是針對我正在處理的項目,我不應該使用它們。 – Shi201 2013-03-19 21:17:54

回答

0

製作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]; 
0

self.navigationController將無法正常工作。我發現了新的方法presentViewController的作品。

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