2012-08-15 195 views
0

我有一個應用程序,我有一個表view.when按下單元格上的按鈕,我必須去另一個視圖控制器(即:testviewcontroller)顯示我在上一個選擇的內容。然後當按下一個按鈕我需要去另一個視圖控制器顯示remaing values.if他選擇那裏然後我需要重複上述過程。問題是從這裏我也攜帶一些值testviewcontroller.if我回到我的視圖控制器如何我可以攜帶新的價值嗎?目前我正在這樣做。如何從導航控制器中的視圖控制器堆棧中獲取特定的視圖控制器?

TestViewController *test =[[ TestViewController alloc]initWithNibName:@"TestViewController" bundle:nil]; 


test.itemselected=head; 

test.itemid=productid; 
//NSLog(@"%@",del.navigationController); 

[del.navigationController pushViewController:test animated:YES]; 

,但我知道

NSArray *array = [del.navigationController viewControllers]; 

[array objectAtIndex:3]是我需要的視圖控制器。

任何人都可以知道我怎麼能避免再次推這個視圖控制器?

+1

我很難理解你的問題。主要是由於你的句子結構。 – Cyprian 2012-08-15 08:26:55

+0

@Cyprian的主要事情是我希望彈出到我的視圖控制器在堆棧中的一組值? – hacker 2012-08-15 08:29:36

+0

@Cyprian而不是創建新的實例我怎麼才能彈出我的視圖控制器的一些值 – hacker 2012-08-15 08:32:06

回答

17

* 編輯 * 這應該是

for (TestViewController*vc in [self.navigationController viewControllers])

,而不是

for (UIViewController*vc in [self.navigationController viewControllers]) 
+0

如果你用你的想法編輯我的代碼並放在這裏,它會很好嗎? – hacker 2012-08-15 08:36:43

+0

如果你對iPhone開發並不陌生,這很簡單,很難理解你想要在你的問題中說些什麼。 – 2012-08-15 08:39:52

+0

@bugfinder我已經編輯了答案,據我瞭解你的問題。 – 2012-08-15 08:42:08

0

對於您的情況是尤爲明顯,以彈回,並重新裝入新contents..no表需要推到一個新的實例

使用一個單獨的數組表

的數據源中刪除所選項目從數據源陣列

然後推到下一個視圖POP操作返回重新加載內容

快樂編碼:)

+0

當我彈出我需要攜帶一些values.to顯示there.thats問題 – hacker 2012-08-15 08:30:50

+0

然後通過appdelegate傳遞它...你可以創建代碼中任何地方的共享實例爲[uiapplication sharedApplication] Delegate] – 2012-08-15 09:01:18

0

可以遍歷在視圖控制器堆棧循環。

-(void) viewWillDisappear:(BOOL)animated { 
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 

     NSMutableArray *ViewControllerArray=[[NSMutableArray alloc]init]; 
     for (long i=[self.navigationController.viewControllers count]-1;i>0; i--) { 


      [ViewControllerArray addObject:[self.navigationController.viewControllers objectAtIndex:i]]; 

      NSLog(@"%@",ViewControllerArray); 
      NSLog(@"%@",self.navigationController.viewControllers); 
     } 

     for (UIViewController *controller in self.navigationController.viewControllers) { 

      //Do not forget to import AnOldViewController.h 
      if ([controller isKindOfClass:[YourViewController class]]) { 

       [self.navigationController popToViewController:controller 
                 animated:YES]; 
       break; 
      } 
     } 



    } 
    [super viewWillDisappear:animated]; 
} 
相關問題