如何解决如何在没有致命错误的情况下覆盖按钮选择
所以我的目标是能够回到表 vc 并且选择的主题仍然是选定的主题,并在再次加载视图时显示正确的问题。正如你在下面看到的,我有 5 个主题......
这是视图始终加载的方式,我总是使用显示事件问题的 tableview 选择事件主题,这是处理按钮选择的代码:
@IBAction func topicpressed(_ sender: UIButton) {
eventsTopicButton.isSelected = false
paymentsTopicButton.isSelected = false
guestsTopicButton.isSelected = false
refundsTopicButton.isSelected = false
profiletopicButton.isSelected = false
sender.isSelected = true
switch sender.currentTitle {
case "Events":
rowsTodisplay = eventQuestions
questionTableView.reloadData()
eventsTopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,green: 0.5618229508,blue: 0,alpha: 1)
profiletopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,green: 0.6000000238,blue: 0.6000000238,alpha: 1)
paymentsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
refundsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
guestsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
case "Payments":
rowsTodisplay = paymentQuestions
questionTableView.reloadData()
eventsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
paymentsTopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,alpha: 1)
case "Guests":
rowsTodisplay = guestQuestions
questionTableView.reloadData()
eventsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
guestsTopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,alpha: 1)
case "refunds":
rowsTodisplay = refundQuestions
questionTableView.reloadData()
eventsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
refundsTopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,alpha: 1)
case "Profile":
rowsTodisplay = profileQuestions
questionTableView.reloadData()
profiletopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,alpha: 1)
eventsTopicButton.backgroundColor = #colorLiteral(red: 0.6000000238,alpha: 1)
default:
break
}
}
现在我遇到的问题是,当单击一个单元格并从与 Events
不同的选定主题转到 vc 时,当退出 vc 并返回到常见问题解答主页时,事件按钮是默认情况下选中,我想覆盖它。所以我尝试在被选中单元格vc中运行此代码块,我得到一个线程错误,说值是nil。
override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
let vc = segue.destination as! FrequentlyAskedQuestionsViewController
switch segue.identifier {
case Constants.GuestQuestions.fromGuestQ1AnswerBackToFAQ:
vc.rowsTodisplay = vc.guestQuestions
vc.guestsTopicButton.backgroundColor = #colorLiteral(red: 0.3084011078,alpha: 1)
vc.eventsTopicButton.backgroundColor = #colorLiteral(red: 0.6666666865,green: 0.6666666865,blue: 0.6666666865,alpha: 1)
// case Constants.GuestQuestions.fromGuestQ2AnswerBackToFAQ:
// vc.guestsTopicButton.isSelected = true
// vc.eventsTopicButton.isSelected = false
default:
break
}
}
vc.rowsTodisplay..
行完全正常,但如果显示了正确的行,但根本没有选择应该选择的按钮,则 UI 会产生误导。在我尝试使用它们之后,我也注释掉了底部的 2 行,但也出现了线程错误,说该值为零。我无法理解价值如何为零,如果有人能帮助解释这一点并提供解决方案,那就太好了。谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。