2011-08-08 48 views
2

我想寫一個自定義開關,將位於兩個自定義tabBar。其結構如下 - enter image description here如何切換不同的UIViewcontrollers

我想使用uiviewcontroller。

現在我用下面的代碼:

- (void)changeViewController:(NSInteger)sender{ 

    if(viewController){ 
     [viewController.view removeFromSuperview]; 
     [viewController release]; 
     NSLog(@"released"); 
    } 

    switch (sender) { 
     case 1:  
      viewController = [[VC1 alloc] init]; 
      break; 
     case 2: 
      viewController = [[VC2 alloc] init]; 
      break; 
     case 3: 
      viewController = [[VC3 alloc] init]; 
      break; 

     default: 
      break; 
    } 

    [viewController.view setFrame:CGRectMake(0, 100, 320, 380)]; 
    [self.view addSubview:viewController.view]; 

} 

,但我認爲這是錯誤的!

可用於這樣的結構 - presentModalViewControllerdismissModalViewControllerAnimated或其他方法工作的相似性navigationViewController

回答

0

你可以試試這個 - [self.navigationController pushViewController:viewController animated:NO];

[self.navigationController popToViewController:targetController animated:YES];

我真的認購navigationController爲它的內存管理和遠響應和無縫的行爲......

希望這會有所幫助。

+0

TNX!我想使用自定義導航控制器。我的應用程序包含三個級別。頂級標籤欄是 - 頂部標籤欄。如果我們在頂部標籤之間切換,我們也會得到不同的視圖控制器,包括一個容器標籤欄。在這個標籤視圖中,我們可以看到主要內容 - 這個內容也是視圖控制器。在視圖控制器之間切換的正確方法是什麼? –

+0

您可以使用自定義導航控制器代替'self.view'。試試看,我的感覺是它應該工作... –

+0

popToViewController是NavigationController上的方法,而不是視圖 –

2

試試這個

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

[self.view addsubview:viewcontroller.view]; 
相關問題