2013-10-24 75 views
0

我建立了一個iPhone應用程序,我想使用XCode中的故事板從的tableView(我們稱之爲有幾排主表視圖控制器),然後做一個簡單的選擇,通過導航它進入下一頁並顯示該選擇的詳細視圖。 我在我的代碼代表我的detailViewController一個基類,並有2-3個司機這個基類的類代表我想在第二頁的詳細視圖控制器來顯示什麼,有人可以給我一個想法如何設置目的地的viewController( detailViewController)動態地使用基於故事板的主視圖控制器選定行對我的子類的嗎?主詳細視圖控制器時detailViewController是動態

通常你在分配故事板類到目的地類使用賽格瑞您的詳細視圖控制器,但因爲我的目標類可以是不同的(子類)你如何設置這故事板?

謝謝 錦

回答

0

有幾個方法,你可以去這個問題:

故事板方法

  • 用故事板來構建你的主表視圖 控制器和細節視圖控制器之間的關係。在故事板,你 完全可以有一個以上的賽格瑞從 MasterTableViewController各種其他視圖控制器去。

    ` - (無效)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath {

    [自performSegueWithIdentifier:@ 「詳細視圖標識符」 發件人:自];

    }

  • 一定要命名你的故事板內的塞格斯。

代碼方法

  1. 內,您的MasterTableViewController:

    ' - (空)的tableView:(UITableView的*)的tableView didSelectRowAtIndexPath方法:(NSIndexPath *)indexPath {

    MyViewController * vc = [[UIStoryboard storyboardWithName:@「Main_iPhone」bundle:nil] instantiateViewControllerWithIdentifier:@「view co ntroller標識符「]];

    [self presentViewController:vc animated:YES completion^{}];

    }

0

如你說,而不是在故事板直接佈線SEGUE到小區,則可以代替處理didSelectRowAtIndexPath方法方法和實例化的任何視圖控制器(或其亞類)要從那裏。

手動加載基於VC故事板,請確保你還是放棄了VC的標識符在Interface Builder故事板,然後做這樣的事情來加載它:

UIStoryboard* storyboard = self.storyboard; 

DetailViewController* detailVC = [storyboard instantiateViewControllerWithIdentifier:@ "DetailViewController"]; 

[self.navigationController pushViewController:detailVC animated:YES]; 

如果你真的想要一個不同VC佈局,爲不同的子類,你可能需要有情節板中的不同VC。或者設置一個初始化程序,讓您可以設置它的使用方式。

相關問題