1
私はiOSアプリケーションSwift 3のPagingMenuController
を実装しようとしています。full code example here on githubを参照してください。この例では、構造体PagingMenuOptions
(let viewController1 = ViewController1() ...
)内にviewControllerを作成します。しかし、ここで作成する代わりにのの外側にあるPagingMenuOptions
と宣言されたViewControllerの配列にアクセスできるようにしたいと考えています。しかし、私はエラーが発生しますSwift 3の構造体外のアクセス値
構造体宣言は、外部スコープで定義された値 '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"))
}
}
}
このエラーはどの回線で発生しますか? – courteouselk
これらの2つのviewController宣言を構造体の外に移動すると、 "viewController1 = ViewController1() let viewController2 = ViewController2()" return [viewController1、viewController2] – Philiz