I'm trying to implement the PagingMenuController
for my iOS app Swift 3. See the full code example here on github. In this example, they create the viewControllers inside the struct PagingMenuOptions
(let viewController1 = ViewController1() ...
). But instead of creating here, I would like to be able to access an array of ViewControllers declared outside of the struct PagingMenuOptions
. But I get an error
Struct declaration cannot close over value 'self' defined in outer scope.
Any idea how to implement this?
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"))
}
}
}