2011-12-13 18 views
0

在按鈕單擊操作上,我想同時銷燬當前屏幕,我想將其導航到主屏幕而不是前一個屏幕。 我試圖通過將此代碼做到這一點,但沒有奏效。是否有可能爲單擊事件調用PopViewControllerAnimated和PushViewController

-(IBAction)  sel_goback 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
    Home1ViewController *HM = [[Home1ViewController alloc] initWithNibName:@"Home1ViewController" bundle:nil]; 
    [self.navigationController pushViewController:HM animated:YES]; 
    [HM release]; 

} 

回答

1

如果self爲頂視圖控制器,然後通過返回popViewControllerAnimated:時間,self.navigationController已被設置爲零。試試這個:

-(IBAction)  sel_goback 
{ 
    UINavigationController *nav = self.navigationController; 
    [nav popViewControllerAnimated:YES]; 
    Home1ViewController *HM = [[Home1ViewController alloc] initWithNibName:@"Home1ViewController" bundle:nil]; 
    [nav pushViewController:HM animated:YES]; 
    [HM release]; 

} 

但是,「主屏幕」聽起來像是已經在您的導航控制器的堆棧上的東西。也許你真正想要的是這樣的:

-(IBAction)  sel_goback 
{ 
    UINavigationController *nav = [self.navigationController]; 
    while (nav.viewControllers.count > 1 && ![nav.topViewController isKindOfClass:[Home1ViewController class]]) 
     [nav popViewControllerAnimated:YES]; 

    if (![nav.topViewController isKindOfClass:[Home1ViewController class]]) { 
     Home1ViewController *home = [[Home1ViewController alloc] initWithNibName:@"Home1ViewController" bundle:nil]; 
     [nav setViewControllers:[NSArray arrayWithObject:home] animated:YES]; 
    } 
} 
+0

嘗試了他們兩個,但沒有爲我工作。不管怎麼說,還是要謝謝你 – MayurCM

相關問題