如何在IOS中弹出堆栈?

时间:2015-05-18 13:04:55

标签: ios objective-c uinavigationcontroller viewcontroller

我正在构建一个iOS应用程序。

我正在做的事情如下所述 -

  1. 有3个ViewControllers,名为A,B,C。
  2. 我转到A到B然后转到C按钮点击功能。
  3. 我必须在所有三个ViewController(A,B,C)上实现导航控制器。
  4. 现在,当我按下导航控制器时,后面的堆栈是C - > B - >答:这是默认行为。
  5. 我需要的是堆栈操作应该像 - C - >那样执行。甲

    为此,我必须从堆栈中弹出B。如何从堆栈弹出B。

2 个答案:

答案 0 :(得分:4)

如果您的目的是始终返回堆栈中的第一个视图控制器,则可以使用

[self.navigationController popToRootViewControllerAnimated:YES];

如果您想弹出X个视图控制器,请从SO中查看以下答案:How do I pop two views at once from a navigation controller?

答案 1 :(得分:0)

使用以下代码执行此操作

for (auto outerIter = myList.begin(); outerIter != myList.end(); outerIter++)
{
    std::list<my_struct> &listEntry = *outerIter;

    for (auto innerIter = listEntry.begin(); innerIter != listEntry.end(); innerIter++)
    {
        // some calculations
    }

    if (criterion)
    {
        // you need point the next element, in roder to insert after the current outerIter position. 
        MyList::iterator tmp = outerIter;
        std::list<my_struct> list_to_insert;                                                            // 1
        list_to_insert.splice(list_to_insert.begin(), listEntry, listEntry.begin(), listEntry.end());   // 2
        myList.insert(++tmp, list_to_insert);                                                   // 3
    }
}