2012-01-12 78 views
0

我想彈出到導航堆棧中的特定視圖控制器,但我做錯了一些,因爲我在嘗試執行時彈出此錯誤代碼嘗試從導航堆棧彈出視圖時聲明失敗

Assertion failure in -[UINavigationController popToViewController:transition:], /SourceCache/UIKit_Sim/UIKit-1912.3/UINavigationController.m:2229 

這裏是代碼這就是導致問題

FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController.xib" bundle:nil]; 

    [self.navigationController popToViewController:firstViewController animated:YES]; 
+0

你的例子中的兩行代碼之間有什麼東西嗎? – dasblinkenlight 2012-01-12 03:55:46

+0

不知道他們是什麼,內部didSelectRowAtIndexPath方法 – 2012-01-12 04:08:23

回答

4

管理找到一個例子,其中完美的作品。

//只要選擇objectAtIndex號碼彈出一個particulart點導航堆棧上

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]; 

希望這有助於。

2

無法彈出,你還沒有推控制器的情況下,即使它可能是相同的另一種控制裝置,其你想返回。

在您的代碼片段中,您試圖將導航控制器的堆棧彈出到新創建的對象。此控制器不在堆棧中,因爲您剛創建它。由於導航控制器找不到您正在查找的控制器,因此會引發錯誤。

+0

好吧,以及firstViewController在那裏我剛剛在這個視圖中聲明它,因爲它沒有出現時,我正在鍵入popToViewController ...我不知道我應該做的。 – 2012-01-12 04:07:15

+0

@ C.Johns定義一個變量來存儲指向初始化代碼中創建的'firstViewController'對象的指針,然後將其推入堆棧。在將堆棧彈出到第一個視圖控制器的代碼中使用該變量的值。 – dasblinkenlight 2012-01-12 04:20:14

相關問題