ios - 在不创建实例的情况下调用另一个类的方法

标签 ios swift

我有一个类的实例,用于处理和实现我的 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/

相关文章:

ios - 我如何访问此打印输出的一部分

ios - 如何在 Swift 中手动启用/禁用键盘返回键?

ios - 在 Swift SpriteKit 中将静态阴影附加到动态 physicsBody 球的底部

ios - 页面控件在完全转到下一页之前切换页面

swift - Alamofire + swiftyJSON 数组解析

macos - 在 Swift 中使用 VLCKit

ios - Swift iOS - 如何设置 UIView 的高度 anchor <= 到标签的固有文本大小? 'NSLayoutConstraint' 不可转换为 'Bool'

ios - NSUserDefaults setValue 和 objectForKey

ios - 使用自动布局时*仅一个*动画 block (UILabel) 的问题

ios - Swift 协议(protocol)函数重载