【问题标题】:how to pop view from stack in tab bar controller in iOS如何在 iOS 的标签栏控制器中从堆栈中弹出视图
【发布时间】:2014-03-02 15:38:08
【问题描述】:

我有一个标签栏控制器。在其中一个 viewcontroller 子中,我进行了检查并确定是否将使用以下代码显示登录视图:

if(loggedIn){

}else{

    SignupViewController *svc = [self.storyboard instantiateViewControllerWithIdentifier:@"SignupView"];
    svc.hidesBottomBarWhenPushed = YES;
    [self.navigationController pushViewController:svc animated:YES];

}

用户从这里以向导格式浏览多个后续视图。就像从 SignupViewController1->SignupViewController2->SignupViewController3->等。正如@Rocky 指出的那样,当您在 SignupViewController2 或 3 或任何后续视图控制器中时,您不能将 SignupViewController1 从堆栈中弹出。

我知道 iOS 文档声明如下:

如果是,底部栏保持隐藏,直到视图控制器 从堆栈中弹出。

我的问题是,一旦我移动到其导航控制器中的后续视图,如何访问原始 SignupViewController 以将其从堆栈中弹出以再次查看我的标签栏?

【问题讨论】:

  • 听起来你有一个 navController 的堆栈看起来像这样:SignupViewController1->SignupViewController2->SignupViewController3->等。当您在 SignupViewController2 或 3 或任何后续视图控制器中时,您不能将 SignupViewController1 从堆栈中弹出。
  • @rocky 就是这样。我应该到达 SignupViewController1 然后从堆栈中弹出它吗?
  • 所以你可以这样做:[self.navigationController popToRootViewControllerAnimated:YES];
  • 是的,如果你想弹出 SignupViewController1,你必须弹出在它之后推送的任何其他 viewController

标签: ios uiviewcontroller uinavigationcontroller uitabbarcontroller


【解决方案1】:

(下一个答案是针对 SWIFT,但是,您可以将其转换为 Objective-C)

我不知道,但也许你可以试试:

@IBAction func returnToPreviusScene(sender : AnyObject) {
        let navController:UINavigationController = self.navigationController!
        navController.popViewControllerAnimated(true)
        navController.pushViewController(FatherView.singleton, animated: false)
    }

您需要知道: singleton 是来自 VIEW 的静态变量 FatherView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    相关资源
    最近更新 更多