ios - swift - performSegue 在 RxSwift Observable 中不起作用
问题描述
我有以下代码:
loginViewModel.facebookLogin
.asObservable()
subscribe() { [unowned self] facebookLogin in
if let isLoggedIn = facebookLogin.element?.isLoggedIn {
if isLoggedIn {
elf.performSegue(withIdentifier: "toRestaurantSelect", sender: self)
}
}
if let didLoginFail = facebookLogin.element?.didLoginFail {
self.errorLabel.isHidden = !didLoginFail
}
}
.disposed(by: disposeBag)
facebookLogin 是一个变量,并在用户登录时更新。但是,不调用 performSegue(条件为真)。奇怪的是,如果我在模拟器中打开慢速动画,则会执行 segue。关闭慢速动画时,segue 不会执行(Facebook 登录有效)。任何帮助表示赞赏。谢谢!
解决方案
我认为您应该使用主线程使其工作
loginViewModel.facebookLogin
.asObservable()
.subscribe() { [unowned self] facebookLogin in
if let isLoggedIn = facebookLogin.element?.isLoggedIn {
if isLoggedIn {
DispatchQueue.main.async {
self.performSegue(withIdentifier: "toRestaurantSelect", sender: self)
}
}
}
if let didLoginFail = facebookLogin.element?.didLoginFail {
self.errorLabel.isHidden = !didLoginFail
}
}
.disposed(by: disposeBag)
推荐阅读
- python - Django:测试帖子视图
- c++ - 如何通过指针更改类成员值
- ruby - 尝试使用 Homebrew 安装 httpd 时权限被拒绝 @rb_system
- inversion-of-control - 温莎城堡类型化工厂的不同参数类型
- c# - azure app service与外部程序的通信解决方案
- powershell - 如何使用PowerShell删除Windows 10文件夹中多个文件名中的多个空格
- perl - perl 如何解决哈希中可能的哈希冲突?
- ios - 搜索控制器不显示搜索结果
- javascript - 如何从本地文件中读取 Json
- c# - 正确捕获 OnCollectionChanged 和 OnPropertyChanged 事件