gpt4 book ai didi

ios - Swift - subview 上的按钮,在父 View 中显示方向

转载 作者:行者123 更新时间:2023-11-30 11:50:47 25 4
gpt4 key购买 nike

我正在创建类似于 Apple map 底页的内容,此处进行讨论: How to mimic iOS 10 maps bottom sheet

我创建了一个 subview infoViewController.xib (InfoViewController.swift - 代码和 InfoViewController.xib - View 设计)这个 subview 将出现在我的 map 前面,就像 Apple map 示例一样,因此您仍然可以看到其后面的 map 。

mapView 由 MapViewController.swift 控制,我使用以下代码从那里调用它:

func addInfoView() {

let infoVC = InfoViewController()

self.addChildViewController(infoVC)
self.view.addSubview(infoVC.view)
infoVC.didMove(toParentViewController: self)
}

我在此 View 上设置了一个“方向”按钮作为 IBAction。当按下此按钮时,我希望它创建方向并将其显示在 MapViewController 中的 map 上。目的地和当前位置信息通过 UserDefaults 传递到 infoViewController。我让它“工作”:

@IBAction func infoDirectionButton(_ sender: Any) {

/*here i have it getting current and destination locations*/


let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let mapViewController = storyboard.instantiateViewController(withIdentifier: "MapViewController") as! MapViewController

self.present(mapViewController, animated: false)

//routeDirection Method is in MapViewController and handles the direction requests
mapViewController.routeDirections(current: current, destination: destination)

mapViewController.addInfoView()

}

这会导致方向显示在屏幕上,但不会在屏幕闪烁之前显示,因为它会重新加载我的地​​图 View 和信息 View ( subview )。

有没有办法让它显示方向而无需重新加载父 View 和 subview 。

需要“self.present”代码,以便我可以调用 ViewController 中的方法,它也不会在 map 上显示方向。

self.present(mapViewController, animated: false)

和 addInfoView() 在显示方向后重新加载 subview 。否则不再显示

mapViewController.addInfoView()

如果这很难理解,我深表歉意,我已尝试简化代码以突出显示该问题。

最佳答案

我首先想到的是,您可以在查找和设置方向的位置添加通知。之后,您可以从拥有您的 map 的 Controller 中观察到该通知。

关于ios - Swift - subview 上的按钮,在父 View 中显示方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48331732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com