我有一個簡單的測試項目。嵌入在故事板中導航控制器內的UITableViewController(MasterViewController)。我不會繼續使用prepareForSegue將數據傳遞給另一個視圖控制器(DetailViewController)。相反,didSelectRowAtIndexPath方法是使用更新,如下圖所示detailviewcontroller標籤:直到此時工作正常UITableView在控制器之間傳遞數據嵌入容器
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailViewController *detailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
NSMutableString *object = thisArray[indexPath.row];
detailViewController.passedData = object;
[self.navigationController pushViewController:detailViewController animated:YES];
}
一切。
現在我在故事板中添加了另一個視圖控制器。使它成爲初始視圖控制器,在其中添加兩個容器,然後在這些容器中嵌入MasterViewController和DetailViewContainer。
現在,不是在右側的DetailViewController中顯示傳遞的數據,而是通過替換控制器視圖來顯示左側的傳遞數據。
如果我不能澄清我想說的話,這裏是鏈接到項目https://jumpshare.com/v/UiTFEB6AamIo8qX9sinW,它只是爲了學習的目的。
感謝
如果包含兩個容器的視圖控制器本身嵌入另一個視圖控制器內,它不保留初始視圖控制器會怎麼樣?它會起作用嗎?還是需要更多的調整? – AJ112 2013-05-05 04:35:20
@ AJ112,不需要調整 - 控制器仍然是嵌入容器視圖的父控制器,所以你仍然可以用同樣的方法引用它。 – rdelmar 2013-05-05 04:43:27
如果我有其他數據對象傳遞給詳細視圖控制器,我可以做更多類似於setPassedData的方法。對? – AJ112 2013-05-05 05:05:14