1

我正在尝试PagingMenuController为我的 iOS 应用程序 Swift 3 实现。请参阅github 上的完整代码示例。在这个例子中,他们在 struct PagingMenuOptions( let viewController1 = ViewController1() ...) 中创建了 viewControllers。但不是在这里创建,我希望能够访问在 struct之外PagingMenuOptions声明的 ViewControllers 数组。但我得到一个错误

结构声明不能关闭外部范围中定义的值“自我”。

知道如何实现吗?

private struct PagingMenuOptions: PagingMenuControllerCustomizable {
    fileprivate var componentType: ComponentType {
        return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers)
    }

    fileprivate var pagingControllers: [UIViewController] {
        let viewController1 = ViewController1()
        let viewController2 = ViewController2()
        return [viewController1, viewController2]
    }

    fileprivate struct MenuOptions: MenuViewCustomizable {
        var displayMode: MenuDisplayMode {
            return .segmentedControl
        }
        var itemsOptions: [MenuItemViewCustomizable] {
            return [MenuItem1(), MenuItem2()]
        }
    }

    fileprivate struct MenuItem1: MenuItemViewCustomizable {
        var displayMode: MenuItemDisplayMode {
            return .text(title: MenuItemText(text: "First Menu"))
        }
    }
    fileprivate struct MenuItem2: MenuItemViewCustomizable {
        var displayMode: MenuItemDisplayMode {
            return .text(title: MenuItemText(text: "Second Menu"))
        }
    }
}
4

1 回答 1

0

这可以通过将 init(xxx) 函数添加到 struct PagingMenuOptions 并将 viewControllers 数组传递给该函数来完成。

于 2016-10-17T09:19:28.977 回答