【发布时间】:2016-10-14 09:49:08
【问题描述】:
我正在尝试为我的 iOS 应用 Swift 3 实现 PagingMenuController。请参阅 full code example here on github。在这个例子中,他们在结构 PagingMenuOptions (let viewController1 = ViewController1() ...) 中创建了 viewControllers。但不是在这里创建,我希望能够访问声明为结构PagingMenuOptions outside 的 ViewControllers 数组。但我得到一个错误
结构声明不能关闭在外部范围中定义的值'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"))
}
}
}
【问题讨论】:
-
你在哪一行得到这个错误?
-
当我将这两个 viewController 声明移出结构“let viewController1 = ViewController1() let viewController2 = ViewController2()”时,错误会附加到返回 [viewController1, viewController2]
标签: swift struct swift-structs