簡體   English   中英

當單擊 Swift 中 NSObject 內部的 tableView 中的項目時,如何在 NSObject Class 內部的 UIViews 或 UIViewController 之間正確切換?

[英]How to switch properly between UIViews or UIViewController inside NSObject Class when clicked the item in tableView inside of NSObject in Swift?

我想要的是,我有 NSObject MenuView,其中包含 tableView,當我單擊其中一個單元格時,它應該刪除另一個 Z594C103F2C6E04C3D8AB059F031E0C1 上的當前 UIViewController 或 UIView。 我在 NSObject didSelectItem 方法中使用了 MainPageController 的共享實例,通過使用 view.willRemoveSubviews(myCurrentView) 和 addSubView(newView) 將 MainPageController 上的當前視圖替換為新視圖,但它甚至沒有崩潰或錯誤。 請問有人可以幫我嗎? 我卡在上面很久了...

這是我如何做到的信息。

inside of NSObject class's didSelectItem方法中

    let view = UIView()
    view.backgroundColor = .red
    MainPageController.shared.addCustomSubView(View: view)

以及我如何in MainPageController定義它

 func addCustomSubView(View: UIView) {
    view.willRemoveSubview(inOutView)
    view.addSubview(View)
    View.anchor(top: headerLine.bottomAnchor, leading: view.leadingAnchor, bottom: footerLine.topAnchor, trailing: view.trailingAnchor, padding: .init(), size: CGSize(width: 0, height: 0))
}

inOutView也是我的另一個 controller 的視圖,我將其添加為當前MainPageController的子視圖

所以我想用我的新View替換inOutView來自 didSelectItem 內部的NSObject class

MainPageController

@objc fileprivate func handleMenuButton() {
    menuLauncher.showSettings()
    menuLauncher.mainPageController = self
}

func showController() {
    let dummyController = UIViewController()
    dummyController.view.backgroundColor = .red
    addChild(dummyController)
    view.addSubview(dummyController.view)
    dummyController.view.anchor(top: headerLine.bottomAnchor, leading: view.leadingAnchor, bottom: footerLine.topAnchor, trailing: view.trailingAnchor, padding: .init(), size: CGSize(width: 0, height: 0))
    dummyController.didMove(toParent: self)

}

並在 NSObject class 和didSelectItemAtIndexPath內部聲明var mainPageController: MainPageController這段代碼:

 self.mainPageController?.showController()

通過這樣做,我通過使用 NSObject 實現了在 viewController 內部的 uiviews 之間的切換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM