[英]How to switch properly between UIViews or UIViewController inside NSObject Class when clicked the item in tableView inside of NSObject in Swift?
What i want is, I have NSObject MenuView which has tableView in it, when i click one the of cells it should remove the current UIViewController or UIView on another controller.我想要的是,我有 NSObject MenuView,其中包含 tableView,当我单击其中一个单元格时,它应该删除另一个 Z594C103F2C6E04C3D8AB059F031E0C1 上的当前 UIViewController 或 UIView。 I have used shared instance of my MainPageController in NSObject didSelectItem method to replace the current view on MainPageController with the new one by using view.willRemoveSubviews(myCurrentView) and addSubView(newView) but it does nothing even not a crash or error.
我在 NSObject didSelectItem 方法中使用了 MainPageController 的共享实例,通过使用 view.willRemoveSubviews(myCurrentView) 和 addSubView(newView) 将 MainPageController 上的当前视图替换为新视图,但它甚至没有崩溃或错误。 is there anyone could help me with that please?
请问有人可以帮我吗? I am stuck on it for a long time...
我卡在上面很久了...
here is the info of how i did it.这是我如何做到的信息。
inside of NSObject class's didSelectItem
method inside of NSObject class's didSelectItem
方法中
let view = UIView()
view.backgroundColor = .red
MainPageController.shared.addCustomSubView(View: view)
and here how i defined it in MainPageController
以及我如何
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
also the view of my another controller, which i added as a subView of current MainPageController
inOutView
也是我的另一个 controller 的视图,我将其添加为当前MainPageController
的子视图
So i want to replace the inOutView
with my new View
coming from the NSObject
class inside didSelectItem所以我想用我的新
View
替换inOutView
来自 didSelectItem 内部的NSObject
class
in MainPageController
:在
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)
}
and declare var mainPageController: MainPageController
in NSObject class and inside of didSelectItemAtIndexPath
this code:并在 NSObject class 和
didSelectItemAtIndexPath
内部声明var mainPageController: MainPageController
这段代码:
self.mainPageController?.showController()
by doing this I achieved switching between uiviews that is inside of viewController by using NSObject.通过这样做,我通过使用 NSObject 实现了在 viewController 内部的 uiviews 之间的切换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.