2013-03-11 65 views
2

如何將價值傳遞給具有導航控制器表視圖控制器?傳遞價值的tableview導航控制器故事情節

我有代碼推新視圖控制器並使其活性,但沒有一個值傳遞給表視圖的方式。

UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:identifier]; 

問題是,我將導航控制器拖到故事板上,並將其附加到tableview。我將該tableview鏈接到我的自定義tableview類。當我從名爲「導航」,這是導航控制器的故事板ID實例化視圖控制器,我得到導航控制器作爲視圖控制器被實例化(newTopViewController);那麼如何將實例化視圖的值傳遞給tableview控制器?

回答

1

你應該通過它裏面prepareForSegue如果您已經將要segueing到VC。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"whateverYourSegueIsCalled"]) 
    { 
     YourTableViewController *tableView=(YourTableViewController*)segue.destinationViewController; 
     tableView.anyPublicProperty = yourValue; 
    } 
} 

編輯:

好了,因爲你實際上只是擁有的tableView嵌入,你只需要訪問navigationViewController的viewControllers屬性..

因此,這將是這樣你裏面navigationViewController類:

YourTableViewController *tableView = (YourTableViewController*)[self.navigationController.viewControllers objectAtIndex:0]; 
tableView.yourPublicProperty = whateverValueYouWant; 

- 您的tableView將在索引爲0的對象,除非你有其他VC的也embedded..So你可以打印出你的vc,然後從那裏找出它,如果你這樣做。

+0

但該代碼將不得不在UINavigationcontroller類中才能被捕獲。你是否建議我創建一個自定義的UINavigationController來傳遞值?另外要澄清,這與其說是一個賽格瑞,因爲它是(點) - (點)符號,你看,當你拖放一個導航控制器到故事板,你看到連接到它的實現代碼如下。 – 2013-03-12 00:09:09

+0

我想我誤解你的問題。你想從navVC傳遞一個值到tableVC?你還是不是從導航視圖控制器繼續進入tableView控制器? – 2013-03-12 00:11:47

+0

編輯完成後,我假設你的意思是在導航控制器內嵌入tableView(即點號?)? – 2013-03-12 00:21:29

3

我知道這已經回答(很好做ttarules),但我想我會帶一些額外的意見通過。在導航控制器中嵌入一些類型的視圖控制器是很常見的。在導航控制器,然後做一個模式SEGUE它包裝標準視圖控制器,爲您提供了一個模式的場景,用一個漂亮的導航欄放在同樣在iPad上的按鈕等,更換塞格斯可以共同使用導航控制器。這些都是關於你如何設計的,但是如果你知道控制器的堆疊方式以及如何輕鬆地引用它們,那麼你將會有更多的設計選擇。這裏有一個片段,你可以在準備使用segue方法時輕鬆檢測它。

if ([segue.destinationViewController isKindOfClass:[UINavigationController class]]) { 

    //note: have to get reference to next vc through nav controller 
    self.nextViewController = [[(UINavigationController*)segue.destinationViewController viewControllers]lastObject]; 
} 
else { 
    self.nextViewController = segue.destinationViewController; 
} 
+0

對你也很好! – 2013-03-14 05:03:34

相關問題