我有一个类的实例,用于处理和实现视图控制器之间的滑动导航。我在该类中有一个方法,允许我模拟到另一个视图控制器的滑动导航。
在一个完美的场景中,我会向IB中的视图控制器添加一个按钮,并在其动作中调用该处理程序类的方法,以便导航到另一个视图控制器。
似乎我正在尝试重新创建一个实例,但显然不起作用,因为它没有其他实例拥有的所有信息。
我还尝试从处理程序类本身向我的视图控制器添加一个按钮的子视图,但是这样有效,但我想知道是否有更漂亮的方式。
也许从我的其他视图控制器访问已经存在的类实例才能调用方法?
我尝试了swipe().navigateToLeftVC()
并重新创建了实例。
答案 0 :(得分:1)
我通过创建单身来解决这个问题。
将此代码添加到我的控制器
class var sharedManager: controllerName {
struct Static {
static let instance = controllerName()
}
return Static.instance
}
然后在我的app委托中,我将它分配给根视图控制器,我使用了controllerName.sharedManager,它返回了我的单例实例。
然后在我的其他视图控制器中,当我想调用该类的方法时,我使用了controllerName.sharedManager.methodName()
。
完美无缺。