gpt4 book ai didi

ios - 不鼓励在分离的 View Controller 上呈现 View Controller - 屏幕 View 变黑

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

我有两个 View Controller :VC1 和 VC2。从 VC1 中,按一个按钮会将应用程序导航到 VC2。 VC2 在 vi​​ewDidLoad() 中有一个网络请求函数,如果请求失败,它会显示警报。

如果一切正常,VC2 上没有请求失败,当我回到 VC1 时,它会调用 VC2 的 deinit 函数。

但是,如果请求失败并显示错误警报,则当我移回 VC1 时,将不会调用(VC2 的)deinit 函数。此外,当屏幕显示 VC1 后尝试显示该警报时,它会导致错误“不鼓励在分离的 View Controller 上呈现 View Controller ”,然后屏幕会变黑,导航栏和错误警报除外VC2 的内容显示在 VC1 上(原因是当 VC2 将显示错误警报时,用户突然按导航栏上的后退按钮返回到上一屏幕)。我的警报是一个全局变量。

这是我处理请求并在 VC2 上显示警报的代码:

func sendRegisterRequest() {
registerAPI.request(parameters: parameters) {
[weak self] (response) in

if let strongSelf = self {
strongSelf.handleResponse(response)
}
}
}

func handleResponse(response: Response<AnyObject, NSError>) {
let result = ResponseHandler.responseHandling(response)

if result.messageCode != MessageCode.Success {
// Show alert
handleResponseError(LocalizedStrings.registerFailedTitle, message: result.messageInfo, requestType: .Register)
return
}
}

func handleResponseError(title: String, message: String?, requestType: RequestType?) {
alert = UIAlertController(title: title, message: message, preferredStyle: .Alert)
let action = UIAlertAction(title: LocalizedStrings.okButton, style: UIAlertActionStyle.Default) { (action) -> Void in
self.handleAlertViewAction(requestType)
}

alert.addAction(action)

dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(self.alert, animated: true, completion: nil)
})
}

我在此处附上屏幕截图:

enter image description here

有人可以解决这个问题吗?如有任何帮助,我们将不胜感激,

露西·阮。

最佳答案

我在构建应用程序时遇到了同样的问题。为了解决这个问题,我尝试了很多修改,终于把错误信息去掉了。

我在第一个 VC 中制作了一个警报窗口,以给用户一些通知。我在-(void)viewDidLoad中编写了警报控制代码。我认为你做了同样的事情或者在 - (void)viewWillAppear 中做了同样的事情。

只需将警报代码移至 - (void)viewDidAppear 即可。然后,错误就会消失。

关于ios - 不鼓励在分离的 View Controller 上呈现 View Controller - 屏幕 View 变黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36216101/

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