【问题标题】:How to press "Back" button in UINavigationController programmatically如何以编程方式在 UINavigationController 中按下“返回”按钮
【发布时间】:2011-11-30 13:17:59
【问题描述】:

我在UINavigationController 中有一个名为FriendsViewControllerUIViewController。第二个UIViewController 称为FriendsDetailedViewController。从第一个视图控制器导航到第二个视图控制器时,我想在需要时以编程方式按下 Back 按钮。如何做到这一点?

【问题讨论】:

  • 您可能只是想跳到上一个视图?

标签: iphone objective-c ios uiviewcontroller uinavigationcontroller


【解决方案1】:

简单使用

[self.navigationController popViewControllerAnimated:YES]

来自 FriendsDetailedViewController。您的视图将被弹出,即返回按钮的行为。

注意它正常返回UIViewController,如果没有弹出内容则返回nil

【讨论】:

  • 这会从堆栈中删除当前的 VC 吗?
【解决方案2】:

如果按下“返回”按钮意味着只是转到上一个视图控制器,则可以调用:

[self.navigationController popViewControllerAnimated:YES];

【讨论】:

    【解决方案3】:

    这里是快速方法

    if let navController = self.navigationController {
        navController.popViewControllerAnimated(true)
    }
    

    【讨论】:

    • 或者只是navigationController?.popViewControllerAnimated(true)
    • ..或者只是(swift 4):navigationController?.popViewController(animated: true)
    【解决方案4】:

    斯威夫特 5

     self.navigationController?.popViewController(animated: true)
    

    在代码sn-p中的用法:

    func unwindViewController() {
        self.navigationController?.popViewController(animated: true)
    }
    

    【讨论】:

      【解决方案5】:

      1) 当你弹出当前的 NavigationController 然后

      在 Swift 中

      self.navigationController?.popViewControllerAnimated(true)
      

      目标 C

      [self.navigationController popViewControllerAnimated:YES];
      

      2) 当你返回另一个导航控制器时

      在 Swift 中

      let story = UIStoryboard(name: "Main", bundle: nil)
      let pushVC = story.instantiateViewControllerWithIdentifier("PushVC")
      let navigation = story.instantiateViewControllerWithIdentifier("homeNavigation") as! UINavigationController
      navigation.pushViewController(pushVC!, animated: true)
      

      在目标 C 中

      UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"storyBoardName" bundle:nil];
      pushVC* ObjectOfPushVC = [storyboard instantiateViewControllerWithIdentifier:@"pushVC"];
      
      [self.navigationController pushViewController:ObjectOfPushVC animated:YES];
      

      【讨论】:

        【解决方案6】:

        这是我在 Swift 3 中的做法

        _ = self.navigationController?.popViewController(animated: true)
        

        _ 用于抑制 XCode 生成的丑陋警告。

        【讨论】:

        • 你不让,所以你可以写:_ = self.navigationController?.popViewController(animated: true)
        • @BrianOgden 感谢您的提示 :)
        猜你喜欢
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多