Skip to content
This repository was archived by the owner on Jun 17, 2018. It is now read-only.

Commit 8b07f89

Browse files
authored
Merge pull request #299 from kitasuke/do_not_instantiate_view_controllers_in_getter
Do not call instantiation method many times
2 parents 5f0d914 + 17b593a commit 8b07f89

File tree

2 files changed

+27
-14
lines changed

2 files changed

+27
-14
lines changed

Example/PagingMenuControllerDemo/PagingMenuControllerOptions.swift

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,19 @@
99
import Foundation
1010
import PagingMenuController
1111

12-
private var pagingControllers: [UIViewController] {
13-
let usersViewController = UsersViewController.instantiateFromStoryboard()
14-
let repositoriesViewController = RepositoriesViewController.instantiateFromStoryboard()
15-
let gistsViewController = GistsViewController.instantiateFromStoryboard()
16-
let organizationsViewController = OrganizationsViewController.instantiateFromStoryboard()
17-
return [usersViewController, repositoriesViewController, gistsViewController, organizationsViewController]
18-
}
19-
2012
struct MenuItemUsers: MenuItemViewCustomizable {}
2113
struct MenuItemRepository: MenuItemViewCustomizable {}
2214
struct MenuItemGists: MenuItemViewCustomizable {}
2315
struct MenuItemOrganization: MenuItemViewCustomizable {}
2416

2517
struct PagingMenuOptions1: PagingMenuControllerCustomizable {
18+
let usersViewController = UsersViewController.instantiateFromStoryboard()
19+
let repositoriesViewController = RepositoriesViewController.instantiateFromStoryboard()
20+
let gistsViewController = GistsViewController.instantiateFromStoryboard()
21+
let organizationsViewController = OrganizationsViewController.instantiateFromStoryboard()
22+
2623
var componentType: ComponentType {
27-
return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers)
24+
return .all(menuOptions: MenuOptions(), pagingControllers: [usersViewController, repositoriesViewController, gistsViewController, organizationsViewController])
2825
}
2926
var lazyLoadingPage: LazyLoadingPage {
3027
return .all
@@ -76,8 +73,13 @@ struct PagingMenuOptions1: PagingMenuControllerCustomizable {
7673
}
7774

7875
struct PagingMenuOptions2: PagingMenuControllerCustomizable {
76+
let usersViewController = UsersViewController.instantiateFromStoryboard()
77+
let repositoriesViewController = RepositoriesViewController.instantiateFromStoryboard()
78+
let gistsViewController = GistsViewController.instantiateFromStoryboard()
79+
let organizationsViewController = OrganizationsViewController.instantiateFromStoryboard()
80+
7981
var componentType: ComponentType {
80-
return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers)
82+
return .all(menuOptions: MenuOptions(), pagingControllers: [usersViewController, repositoriesViewController, gistsViewController, organizationsViewController])
8183
}
8284
var menuControllerSet: MenuControllerSet {
8385
return .single
@@ -94,8 +96,13 @@ struct PagingMenuOptions2: PagingMenuControllerCustomizable {
9496
}
9597

9698
struct PagingMenuOptions3: PagingMenuControllerCustomizable {
99+
let usersViewController = UsersViewController.instantiateFromStoryboard()
100+
let repositoriesViewController = RepositoriesViewController.instantiateFromStoryboard()
101+
let gistsViewController = GistsViewController.instantiateFromStoryboard()
102+
let organizationsViewController = OrganizationsViewController.instantiateFromStoryboard()
103+
97104
var componentType: ComponentType {
98-
return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers)
105+
return .all(menuOptions: MenuOptions(), pagingControllers: [usersViewController, repositoriesViewController, gistsViewController, organizationsViewController])
99106
}
100107
var lazyLoadingPage: LazyLoadingPage {
101108
return .three
@@ -148,8 +155,13 @@ struct PagingMenuOptions5: PagingMenuControllerCustomizable {
148155
}
149156

150157
struct PagingMenuOptions6: PagingMenuControllerCustomizable {
158+
let usersViewController = UsersViewController.instantiateFromStoryboard()
159+
let repositoriesViewController = RepositoriesViewController.instantiateFromStoryboard()
160+
let gistsViewController = GistsViewController.instantiateFromStoryboard()
161+
let organizationsViewController = OrganizationsViewController.instantiateFromStoryboard()
162+
151163
var componentType: ComponentType {
152-
return .pagingController(pagingControllers: pagingControllers)
164+
return .pagingController(pagingControllers: [usersViewController, repositoriesViewController, gistsViewController, organizationsViewController])
153165
}
154166
var defaultPage: Int {
155167
return 1

Example/PagingMenuControllerDemo2/RootViewControoler.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ import UIKit
1010
import PagingMenuController
1111

1212
private struct PagingMenuOptions: PagingMenuControllerCustomizable {
13+
private let viewController1 = ViewController1()
14+
private let viewController2 = ViewController2()
15+
1316
fileprivate var componentType: ComponentType {
1417
return .all(menuOptions: MenuOptions(), pagingControllers: pagingControllers)
1518
}
1619

1720
fileprivate var pagingControllers: [UIViewController] {
18-
let viewController1 = ViewController1()
19-
let viewController2 = ViewController2()
2021
return [viewController1, viewController2]
2122
}
2223

0 commit comments

Comments
 (0)