2011-01-25 37 views
0

我正在尋找一種方法,能夠在另一個模式視圖控制器之後顯示一個模式視圖控制器,並在第一個模式視圖控制器消失時進行顯示。iPhone - 順利顯示2個連續的模態視圖控制器

問題是在第一個modalviewcontroller中完成的解除調用適用於兩者,而SecondController從不顯示。

在父通話之前或之後進行第一次解除不會改變任何內容。 如果第一次關閉設置爲動畫=否,則一切正常。但我需要動畫。

我打算這樣做,但問題是在第一個modalviewcontroller中完成的解除調用適用於兩者,而SecondController從不顯示。

我不明白爲什麼,因爲每個模態視圖都有自己的導航控制器,所以他們不應該碰撞。

我在0.5秒後用NSTimer顯示第二個模態視圖的方式嘗試了另一種方式,但它並不令人滿意:第一個完全消失時出現第二個模式視圖。一點都不光滑......如果我將延遲設置爲小於0.5秒,那麼第二個模態視圖將不會顯示出來。並且使用這樣的計時器來實現這似乎不是一種好的編碼方式。

的main.m

- (void) entry { 

    FirstController *nextWindow = [[FirstController alloc] initWithNibName:@"theNIB" bundle:nil]; 

    nextWindow.caller = self; 

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow]; 

    [self.navigationController presentModalViewController:navController animated:YES]; 

    [nextWindow release]; 
    [navController release]; 
} 


- (void) thingsDoneInFirstModalController:(OBJECT)returnValue retval2:(OBJECT2)returnValue2 { 
    [self display2ndController]; 
} 

- (void) display2ndController { 

    SecondController *nextWindow; 

    nextWindow = [[SecondController alloc] initWithNibName:@"NIB2" bundle:nil]; 

    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:nextWindow]; 
    [self.navigationController presentModalViewController:navController animated:YES]; 
    [navController release]; 
    [nextWindow release]; 
} 

1 ModalViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    [self.navigationController dismissModalViewControllerAnimated:YES]; 
    [self.caller thingsDoneInFirstModalController:theResult retval2:someMoreResult]; 
} 

你知道一種方法,使這成爲可能(請同時第一個正在消失出現的第二個視圖),一些代碼例如?

謝謝。

回答

0

嘗試創建一些虛擬的ViewController,並使用它展示你的第二個。

+0

你能多解釋一下嗎,我不明白你的意思... – Oliver 2011-01-25 22:24:29

相關問題