[英]iOS, how should go back up the navigation stack but not to root?
我正在使用一個Storyboard和Storyboard ID,我是導航堆棧深處的幾個控制器。
我目前在“結果控制器”上,我想轉到“項目控制器”,但是重置/重新加載該控制器,我將傳遞當前具有的相同屬性值。 因此,實際上我將上升兩個級別然后進行推送。
我只是想知道實現此目標的最佳方法是什么?
我猜我可以多次調用pop,然后在“結果控制器”中推送屬性值,將其傳遞給“項目控制器”?
嗯,我想我會在第一次彈出時保留動畫,然后在兩次按下時將其禁用。
希望這是有道理的。
嘗試這個。 也許會對您有幫助。
NSArray *vList = [[self navigationController] viewControllers];
UIViewController *view;
for (int i=[vList count]-1; i>=0; --i) {
view = [vList objectAtIndex:i];
if ([view.nibName isEqualToString: @"ItemController"])
{
[self.navigationController popToViewController:view animated:YES];
break;
}
}
嘗試這個
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:2] animated:YES];
您可以返回任何想要的索引
for (UIViewController *controller in [self.navigationController viewControllers])
{
if ([controller isKindOfClass:[YourViewCOntrollerName class]])
{
[self.navigationController popToViewController:controller animated:YES];
break;
}
}
彈出特定的視圖控制器(在本例中為ItemController),您可以使用以下代碼
[self.navigationController popToViewController:ItemController animated:YES];
您嘗試制作的方法並不是真正的最佳選擇,最終可能會給您帶來麻煩。 干凈的方法是編碼一種重置“項目控制器”的方法,因此您只需要彈出1次即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.