1

PagingMenuControlleriOS アプリ Swift 3 にを実装しようとしています。ここの github で完全なコード例を参照してください。PagingMenuOptionsこの例では、構造体( )内に viewControllers を作成しますlet viewController1 = ViewController1() ...。しかし、ここで作成する代わりに、 struct の外部で宣言された ViewControllers の配列にアクセスできるようにしたいと考えていますPagingMenuOptions。しかし、私はエラーが発生します

構造体宣言は、外側のスコープで定義された値 'self' を閉じることができません。

これを実装する方法はありますか?

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