• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 关闭 View Controller 不会返回到前一个 View Controller

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:47:24 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

根据我的应用程序的需要,在推送另一个带有动画的 View Controller 后,我正在展示一个 View Controller 。代码如下:

    func pushViewController() {
    let viewcontroller = UIStoryboard(name: "Home", bundle: nil).instantiateViewController(withIdentifier: "homeSearchIndentifier") as? HomeSearchViewController
    let searchViewController = UIStoryboard(name: "Home", bundle: nil).instantiateViewController(withIdentifier: "searchRideIdentifier") as? SearchRideViewController
    searchViewController?.parentView = .homeLandingPage
    let duration = 0.4
    let transition: CATransition = CATransition()
    transition.duration = duration
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromBottom
    self.navigationController!.view.layer.add(transition, forKey: kCATransition)
    self.navigationController?.pushViewController(viewcontroller!, animated: false)
    viewcontroller?.present(searchViewController!, animated: true, completion: nil)
  }

在呈现的 View Controller 中,我分配了一个侧边菜单 Controller ,因为我需要在向右滑动时显示侧边菜单:

override func viewDidLoad() {
    super.viewDidLoad()
    self.addSearchListScreen()
    self.locationManager.delegate = self
    yourLocation.layer.sublayerTransform = CATransform3DMakeTranslation(7, 0, 0)
    let leftViewController = UIStoryboard(name: "SideBar", bundle: nil).instantiateViewController(withIdentifier: "sideBar") as? SideBarViewController
    let slideMenuController = SlideMenuTrackerController(mainViewController: self, leftMenuViewController: leftViewController!)
    AppDelegate.sharedInstance().window?.rootViewController = slideMenuController
    leftViewController?.mainViewController = self
    slideMenuController.automaticallyAdjustsScrollViewInsets = true
    AppDelegate.sharedInstance().window?.backgroundColor = UIColor(red: 236.0, green: 238.0, blue: 241.0, alpha: 1.0)
    AppDelegate.sharedInstance().window?.makeKeyAndVisible()
  }

现在我在这个 View Controller 中有一个自定义的后退按钮。单击它时,我需要关闭 View Controller 并显示 View Controller 的显示位置。名称为“HomeSearchViewController”

为了解除我在按钮操作中写了以下代码:

    func navigateToPreviousController() {
      self.dismiss(animated: true, completion: nil)
  }

但这并没有解除 View Controller 。我可以知道是什么问题吗?



Best Answer-推荐答案


为了关闭 View Controller ,您的 View Controller 应嵌入导航 Controller 中。

例如:

let controller =storyboard.instantiateViewController(withIdentifier: "storyboardidentifier") as! yourviewcontroller        
    let navController = UINavigationController(rootViewController: controller)
    present(navController, animated: true, completion: nil) 

然后在呈现的 View Controller 上,如果您使用以下代码,它将关闭 View Controller 。

func dismissButtonPressed(){
   self.dismiss(animated: true, completion: nil)
}

干杯!!

关于ios - 关闭 View Controller 不会返回到前一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432773/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap