我在這里有兩個 viewController 類 1)搜索購物車 viewController 2)搜索醫學 Viewcontroller 在我的搜索購物車控制器中有一個在情節提要中設計的 UiView(命名為:lineItemView)。在搜索藥物控制器中,我有一個添加藥物的按鈕。我想如果我從搜索藥物控制器單擊添加藥物按鈕,它應該從搜索車控制器彈出 lineItemView,并且搜索車控制器本身應該被隱藏。我嘗試使用 UserDefalts,但它不起作用。添加按鈕點擊
@IBAction func addMedicineBtnTapped(_ sender: Any) {
let defaults = UserDefaults.standard
defaults.set(true, forKey: "showLineItemView")
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "searchCart") as! searchCart
vc.finalcart = cart
vc.storeCart()
self.navigationController?.pushViewController(vc, animated: true)
}
在搜索購物車 didload 功能
if UserDefaults.standard.value(forKey: "showLineItemView") != nil{
let condition = UserDefaults.standard.value(forKey: "showLineItemView") as! Bool
if condition{
self.view.isHidden= true
self.lineItemView.isHidden = false
UserDefaults.standard.set(false, forKey: "showLineItemView")
}
}
uj5u.com熱心網友回復:
解決方案:
@IBAction func addMedicineBtnTapped(_ sender: Any) {
let defaults = UserDefaults.standard
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewController(withIdentifier: "searchCart") as! searchCart
vc.finalcart = cart
vc.storeCart()
vc.showLineItemView = true
vc.modalPresentationStyle = .overFullScreen
//push as NavigationController
//self.navigationController?.pushViewController(vc, animated: true)
//push as UIViewController
self.present(vc, animated: false, completion: nil)
}
class searchCart:UIViewController{
var showLineItemView = false
override func viewDidLoad() {
super.viewDidLoad()
if(showLineItemView){
self.view.backgroundColor = .clear
//disable all other UI
self.lineItemView.isHidden = false
}
}
}
使用另一個viewcontroller子視圖不是一個好主意,嘗試為lineItemView制作組件UI(XIB),讓lineItemView由原始viewcontroller控制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415448.html
標籤:
