gpt4 book ai didi

ios - performSegue 到 ViewController 后事件指示器未加载

转载 作者:行者123 更新时间:2023-11-28 14:19:10 24 4
gpt4 key购买 nike

我是 Swift 的初学者,我对我的事件指示器有疑问。我一直在使用 NVActivityIndi​​catorView,直到现在我才遇到任何问题。我有一个 LoginViewController,一旦用户成功登录,它会指向另一个名为 ContainerViewController 的 View Controller 。

登录 View Controller :

    self.networkManager.getConfig(url: url) { (success, message, response) in
self.stopAnimating()
if success {
print(response)

if (response[APIKey.error] == nil){
StoreManager.mainview = Definition(definitionDict: response[APIKey.definition] as! NSDictionary)

let logoutContextMenu = ContextMenu()
logoutContextMenu.displayName = Constants.logout
logoutContextMenu.viewName = Constants.logout
StoreManager.mainview.contextmenu.append(logoutContextMenu)

Endpoints.org = StoreManager.mainview.org

self.performSegue(withIdentifier: Constants.containerViewController , sender: self)
}

else{
self.authenticate()
}
}else{
print(message)
self.showToast(message: Constants.commonErrorMessage)
}

}

我的问题是,一旦 segue 完成,我在 ContainerViewController 中的事件指示器在加载 API 时不会显示。这只会在用户登录后发生。

在 ContainerViewController 中,我在 viewWillLoad 中有一个名为 setupUI 的函数,它将调用另一个名为 viewConfig 的函数。 viewConfig 函数内部是事件指示器,每次加载 API 时它都会开始动画。

容器 View Controller :

override func viewDidLoad() {
super.viewDidLoad()

self.setUpUI()
}

func setUpUI(){
switch StoreManager.mainview.menuLayout.mobile {
case Constants.dashboardmenu:
setUpSideBarMenu()
if (otherViewNameSelected){
print(selectedViewName)
if selectedViewName == ""{
selectedViewName = StoreManager.mainview.solutions[0].views[0].viewName
}
self.getViewConfig(solutionName: StoreManager.mainview.solutions[0].solutionName, viewName: selectedViewName)
}

break

default:
self.navigationItem.leftBarButtonItem = nil
break
}
}

func getViewConfig(){
let url: String = Endpoints.view + Endpoints.version + Endpoints.org + "/" + solutionName + "/" + Endpoints.views + viewName + Endpoints.token
startAnimating()
networkManager.getConfig(url: url) { (success, message, response) in
self.stopAnimating()
if success {
self.parseViewConfig(response)
}else{
print(message)
}
}
}

parseViewConfig 是一个带有加载数据的 tableView 的函数。

如何在用户登录并显示 ContainerViewController 后显示事件指示器?

最佳答案

试试这个

func getViewConfig(){
let url: String = Endpoints.view + Endpoints.version + Endpoints.org + "/" + solutionName + "/" + Endpoints.views + viewName + Endpoints.token
DispatchQueue.main.async {
self.startAnimating()
}
networkManager.getConfig(url: url) { (success, message, response) in
DispatchQueue.main.async {
self.stopAnimating()
}
if success {
self.parseViewConfig(response)
}else{
print(message)
}
}
}

关于ios - performSegue 到 ViewController 后事件指示器未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51999846/

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