我有一个类的实例,用于处理和实现我的 View Controller 之间的滑动导航。我在那个类中有一个方法,允许我模拟到另一个 View Controller 的滑动导航。
在一个完美的场景中,我会向 IB 中的 View Controller 添加一个按钮,并在其操作中调用处理程序类的该方法以导航到另一个 View Controller 。
似乎我正在尝试重新创建一个实例,但显然不起作用,因为它没有另一个实例所具有的所有信息。
我还尝试从处理程序类本身向我的 View Controller 添加一个按钮的 subview ,这很有效,但我想知道是否有更漂亮的方法。
也许可以从我的其他 View Controller 访问该类的现有实例以调用该方法?
我试过 swipe().navigateToLeftVC()
并重新创建了实例。
最佳答案
我通过创建单例解决了这个问题。
将此代码添加到我的 Controller
class var sharedManager: controllerName {
struct Static {
static let instance = controllerName()
}
return Static.instance
}
然后在我的应用程序委托(delegate)中,我将其分配给 Root View Controller ,我使用了controllerName.sharedManager,它返回了我的单例实例。
然后在我的另一个 View Controller 中,当我想调用该类的方法时,我使用了 controllerName.sharedManager.methodName()
。
完美运行。
关于ios - 在不创建实例的情况下调用另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114066/