2011-09-02 48 views
0

我想用一種方法刪除兩個viewcontrollers(已被添加在彼此的頂部)。我在interfacebuilder中提出了觀點。他們都擁有自己的.h和.m文件。從超級視圖的ButtonClick事件刪除ViewController

場景我在:

我有進口了視圖2頭文件中的主菜單。在方法我添加所述第二視圖上上海華的頂端,像這樣

view2ViewController * view2 = [[view2ViewController alloc]  initWithNibName:@"view2ViewController" bundle:nil]; 
[self.view addSubview:view2.view]; 

然後在圖2 I已經添加了視圖3的頭文件,所以我可以添加視圖3作爲一個子視圖ontop的視圖2的。我有再次連接的另一種方法,以便在按下按鈕到Interface Builder來一個UIButton的方法被稱爲視圖2這增加了圖3頂部酷似所以同樣的方式:

view3ViewController * view3 = [[view3ViewController alloc]  initWithNibName:@"view3ViewController" bundle:nil]; 
    [self.view addSubview:view3.view]; 

什麼即時通訊試圖解決:我在視圖3中有一個按鈕,它應該刪除視圖3 ....然後它也應該刪除視圖2,因此主屏幕可見。

這是如何實現的?

我有什麼至今:

[self.view removeFromSuperview]; 

但是,這僅刪除查看3 ......但葉視圖到位。

什麼需要修改,以便我可以刪除視圖2?

任何幫助表示讚賞。

+1

通過刪除你的意思是改變視圖和viewcontroller – Robin

+0

你如何插入此視圖? – mayuur

+0

@Mayur我做了一個herirchy。在點擊標籤欄上的按鈕時,我在view1上出現了view2,然後在view2上單擊按鈕,view3控制器就會出現。 –

回答

2

實際上,您添加任何視圖的方式與刪除該視圖的方式相同。假設,您可以通過將其推入導航控制器這樣

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

添加視圖,那麼你就需要編寫成yourViewController.m文件這個

//inYourViewController.m file 
    [self.navigationController popViewControllerAnimated:YES]; 

新的編輯:

好吧,所以假設你提供了ModalViewController然後做到這一點。

現在,你的第二個問題你想去view1而不是view2。在AppDelegate中創建一個布爾變量。在View3中按完成按鈕時進行設置。現在

//inYourAppDelegate.h 
    BOOL doneBtnClicked = NO; 

    //inYourViewController3.m 
    - (IBAction) doneBtnPressed : (id) sender 
    { 
      //your code 
      yourAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 
      appDelegate.doneBtnClicked = YES; 
    >>CHANGE THIS  [self.view removeFromSuperview]; 
    } 

,在您的視圖2,在viewWillAppear中方法

- (void) viewWillAppear:(BOOL)animated 
    { 
     [super viewWillAppear:animated]; 
      //your code 
      yourAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 
      if(appDelegate.doneBtnClicked) 
      { 
        appDelegate.doneBtnClicked = NO; 
    >>AND THIS  [self.view removeFromSuperview]; 
      } 
    } 

然而,你想做的事是很容易實現與UINavigationController.I的幫助,建議你用做導航的幫助,因爲它在內存管理方面會變得很容易,而且導航控制器僅用於此目的。

+0

@ Mayur.Its heirercy。我沒有使用導航控制器。我曾經在最大的視圖中呈現模式.Whole view1 .Veiw2更大.View3更小。因此,當我點擊完成按鈕view3和view2將只會刪除。 View1會出現 –

+1

好吧,請檢查我編輯的答案。您只需將self.navigationController的popController更改爲dismissModalViewController方法,您就可以輕鬆完成任務。 – mayuur

+0

謝謝,但我認爲有一些問題understang.Please chekc我編輯的問題 –

相關問題