git.iko.soy/dashared/GDproject
on master help sign in
Changed preview concept (new vc) and added dialogs bar. Is correctly working in coordinators system. Btw wish General were a channel...
commit2c1cb56a149c1647970efd8d50ad4001f0d121b5 authorDarya Rednikina <rednikina.com@yandex.ru> dateWed 1 May 2019, 14:29 (7 years ago) parentd782405
9 files changed+250−15
GDproject.xcodeproj/project.pbxproj+16 GDproject/Base.lproj/Main.storyboard+49−6 GDproject/Constants.swift+3 GDproject/Controller/ News and channels/ChannelController.swift+25−5 GDproject/Controller/Coordinators/ChannelsCoordinator.swift+18−3 GDproject/Controller/Coordinators/MessagesCoordinator.swift+32 GDproject/Controller/Coordinators/TabbarController.swift+6−1 GDproject/Controller/Coordinators/TabbarCoordinator.swift+11 GDproject/Controller/Messages/MessagesViewController.swift+90
GDproject.xcodeproj/project.pbxproj+16
@@ -19,6 +19,8 @@
1919 1291BE2D2221312D009D3F23 /* ChannelsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE2C2221312C009D3F23 /* ChannelsCoordinator.swift */; };
2020 1291BE342221569B009D3F23 /* TabbarCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE332221569B009D3F23 /* TabbarCoordinator.swift */; };
2121 1291BE3622218DBF009D3F23 /* LogInCoordinator1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1291BE3522218DBF009D3F23 /* LogInCoordinator1.swift */; };
22+ 129320042279B4270035C7B3 /* MessagesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 129320032279B4270035C7B3 /* MessagesViewController.swift */; };
23+ 129320072279B5690035C7B3 /* MessagesCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 129320062279B5690035C7B3 /* MessagesCoordinator.swift */; };
2224 12BA4B9B224101A400DF93D7 /* ApplicationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9A224101A400DF93D7 /* ApplicationCoordinator.swift */; };
2325 12BA4B9D224101E700DF93D7 /* BaseCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9C224101E700DF93D7 /* BaseCoordinator.swift */; };
2426 12BA4B9F224102B700DF93D7 /* LogInCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12BA4B9E224102B700DF93D7 /* LogInCoordinator.swift */; };
@@ -101,6 +103,8 @@
101103 1291BE2C2221312C009D3F23 /* ChannelsCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelsCoordinator.swift; sourceTree = "<group>"; };
102104 1291BE332221569B009D3F23 /* TabbarCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabbarCoordinator.swift; sourceTree = "<group>"; };
103105 1291BE3522218DBF009D3F23 /* LogInCoordinator1.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInCoordinator1.swift; sourceTree = "<group>"; };
106+ 129320032279B4270035C7B3 /* MessagesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesViewController.swift; sourceTree = "<group>"; };
107+ 129320062279B5690035C7B3 /* MessagesCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesCoordinator.swift; sourceTree = "<group>"; };
104108 12BA4B9A224101A400DF93D7 /* ApplicationCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationCoordinator.swift; sourceTree = "<group>"; };
105109 12BA4B9C224101E700DF93D7 /* BaseCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseCoordinator.swift; sourceTree = "<group>"; };
106110 12BA4B9E224102B700DF93D7 /* LogInCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInCoordinator.swift; sourceTree = "<group>"; };
@@ -177,6 +181,7 @@
177181 isa = PBXGroup;
178182 children = (
179183 12BA4B9A224101A400DF93D7 /* ApplicationCoordinator.swift */,
184+ 129320062279B5690035C7B3 /* MessagesCoordinator.swift */,
180185 12F3D6AF224106F700A69214 /* TabbarController.swift */,
181186 12F3D6B12241097B00A69214 /* ProfileCoordinator.swift */,
182187 12BA4B9E224102B700DF93D7 /* LogInCoordinator.swift */,
@@ -196,6 +201,14 @@
196201 path = "Log In";
197202 sourceTree = "<group>";
198203 };
204+ 129320052279B4300035C7B3 /* Messages */ = {
205+ isa = PBXGroup;
206+ children = (
207+ 129320032279B4270035C7B3 /* MessagesViewController.swift */,
208+ );
209+ path = Messages;
210+ sourceTree = "<group>";
211+ };
199212 12E36D8F221424EA006FCDD7 = {
200213 isa = PBXGroup;
201214 children = (
@@ -264,6 +277,7 @@
264277 isa = PBXGroup;
265278 children = (
266279 1291BE32222154C3009D3F23 /* Coordinators */,
280+ 129320052279B4300035C7B3 /* Messages */,
267281 1291BE3722218DC4009D3F23 /* Log In */,
268282 1288B5CC221F0EFE002BE6B1 /* Profile */,
269283 12E36DD322156519006FCDD7 /* News and channels */,
@@ -371,6 +385,7 @@
371385 isa = PBXSourcesBuildPhase;
372386 buildActionMask = 2147483647;
373387 files = (
388+ 129320072279B5690035C7B3 /* MessagesCoordinator.swift in Sources */,
374389 124CC7032221C00C009DF531 /* Model.swift in Sources */,
375390 12F3D6B0224106F700A69214 /* TabbarController.swift in Sources */,
376391 12E36DD522156559006FCDD7 /* MyStackView.swift in Sources */,
@@ -391,6 +406,7 @@
391406 12BA4B9B224101A400DF93D7 /* ApplicationCoordinator.swift in Sources */,
392407 1291BE2D2221312D009D3F23 /* ChannelsCoordinator.swift in Sources */,
393408 12E36DD122148122006FCDD7 /* FullPostController.swift in Sources */,
409+ 129320042279B4270035C7B3 /* MessagesViewController.swift in Sources */,
394410 1288B5CE221F1158002BE6B1 /* DataStorage.swift in Sources */,
395411 12BA4B9F224102B700DF93D7 /* LogInCoordinator.swift in Sources */,
396412 12F3D6B22241097B00A69214 /* ProfileCoordinator.swift in Sources */,
GDproject/Base.lproj/Main.storyboard+49−6
@@ -11,6 +11,20 @@
1111 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
1212 </dependencies>
1313 <scenes>
14+ <!--Item-->
15+ <scene sceneID="bZ2-fw-XBE">
16+ <objects>
17+ <navigationController id="gt4-mD-66Q" sceneMemberID="viewController">
18+ <tabBarItem key="tabBarItem" title="Item" id="ZPm-j1-3dy"/>
19+ <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="XiY-wd-750">
20+ <rect key="frame" x="0.0" y="20" width="375" height="44"/>
21+ <autoresizingMask key="autoresizingMask"/>
22+ </navigationBar>
23+ </navigationController>
24+ <placeholder placeholderIdentifier="IBFirstResponder" id="4yT-77-90q" userLabel="First Responder" sceneMemberID="firstResponder"/>
25+ </objects>
26+ <point key="canvasLocation" x="1089" y="481"/>
27+ </scene>
1428 <!--Profile View Controller-->
1529 <scene sceneID="rQ6-TM-V7T">
1630 <objects>
@@ -131,7 +145,7 @@
131145 </viewController>
132146 <placeholder placeholderIdentifier="IBFirstResponder" id="sap-zV-B7l" userLabel="First Responder" sceneMemberID="firstResponder"/>
133147 </objects>
134− <point key="canvasLocation" x="2013.5999999999999" y="957.57121439280365"/>
148+ <point key="canvasLocation" x="1884" y="1216"/>
135149 </scene>
136150 <!--Settings View Controller-->
137151 <scene sceneID="WVn-Qy-9tO">
@@ -168,7 +182,7 @@
168182 </tableViewController>
169183 <placeholder placeholderIdentifier="IBFirstResponder" id="xdg-ZK-4Jv" userLabel="First Responder" sceneMemberID="firstResponder"/>
170184 </objects>
171− <point key="canvasLocation" x="1986" y="1756"/>
185+ <point key="canvasLocation" x="1980" y="1979"/>
172186 </scene>
173187 <!--Invite View Controller-->
174188 <scene sceneID="DcO-6Y-Iko">
@@ -212,7 +226,7 @@
212226 </viewController>
213227 <placeholder placeholderIdentifier="IBFirstResponder" id="t8a-Sv-mbh" userLabel="First Responder" sceneMemberID="firstResponder"/>
214228 </objects>
215− <point key="canvasLocation" x="2803" y="1756"/>
229+ <point key="canvasLocation" x="2799" y="1979"/>
216230 </scene>
217231 <!--Simplified Channels List-->
218232 <scene sceneID="gAa-jy-vpG">
@@ -416,9 +430,38 @@
416430 </objects>
417431 <point key="canvasLocation" x="3444" y="129.98500749625188"/>
418432 </scene>
433+ <!--Messages View Controller-->
434+ <scene sceneID="WSW-fr-Vf8">
435+ <objects>
436+ <tableViewController storyboardIdentifier="MessagesViewController" id="KLf-CK-diQ" customClass="MessagesViewController" customModule="GDproject" customModuleProvider="target" sceneMemberID="viewController">
437+ <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="13B-QX-K78">
438+ <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
439+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
440+ <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
441+ <prototypes>
442+ <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="67C-fT-WEV">
443+ <rect key="frame" x="0.0" y="28" width="375" height="44"/>
444+ <autoresizingMask key="autoresizingMask"/>
445+ <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="67C-fT-WEV" id="O3b-Xv-UNk">
446+ <rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
447+ <autoresizingMask key="autoresizingMask"/>
448+ </tableViewCellContentView>
449+ </tableViewCell>
450+ </prototypes>
451+ <connections>
452+ <outlet property="dataSource" destination="KLf-CK-diQ" id="LjF-Uw-Xhq"/>
453+ <outlet property="delegate" destination="KLf-CK-diQ" id="yJZ-wH-O3v"/>
454+ </connections>
455+ </tableView>
456+ </tableViewController>
457+ <placeholder placeholderIdentifier="IBFirstResponder" id="fu3-z4-EY7" userLabel="First Responder" sceneMemberID="firstResponder"/>
458+ </objects>
459+ <point key="canvasLocation" x="2798" y="932"/>
460+ </scene>
419461 <!--Posts-->
420462 <scene sceneID="RSd-UJ-34B">
421463 <objects>
464+ <placeholder placeholderIdentifier="IBFirstResponder" id="POV-5T-jeQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
422465 <navigationController storyboardIdentifier="navChannels" automaticallyAdjustsScrollViewInsets="NO" id="NuV-ZG-ld2" sceneMemberID="viewController">
423466 <tabBarItem key="tabBarItem" title="Posts" image="5" selectedImage="5" id="dH2-sL-YsR"/>
424467 <toolbarItems/>
@@ -428,9 +471,8 @@
428471 </navigationBar>
429472 <nil name="viewControllers"/>
430473 </navigationController>
431− <placeholder placeholderIdentifier="IBFirstResponder" id="POV-5T-jeQ" userLabel="First Responder" sceneMemberID="firstResponder"/>
432474 </objects>
433− <point key="canvasLocation" x="1088.8" y="132.68365817091455"/>
475+ <point key="canvasLocation" x="1089" y="-306"/>
434476 </scene>
435477 <!--Profile-->
436478 <scene sceneID="dJj-Hp-Wa9">
@@ -446,7 +488,7 @@
446488 </navigationController>
447489 <placeholder placeholderIdentifier="IBFirstResponder" id="Fvm-qf-2Ve" userLabel="First Responder" sceneMemberID="firstResponder"/>
448490 </objects>
449− <point key="canvasLocation" x="1089" y="958"/>
491+ <point key="canvasLocation" x="1015" y="1216"/>
450492 </scene>
451493 <!--Tabbar Controller-->
452494 <scene sceneID="HCR-WO-p7g">
@@ -460,6 +502,7 @@
460502 </tabBar>
461503 <connections>
462504 <segue destination="NuV-ZG-ld2" kind="relationship" relationship="viewControllers" id="XuX-8s-fZU"/>
505+ <segue destination="gt4-mD-66Q" kind="relationship" relationship="viewControllers" id="QM3-FF-LMu"/>
463506 <segue destination="tae-5q-wvT" kind="relationship" relationship="viewControllers" id="wCJ-4N-lfC"/>
464507 </connections>
465508 </tabBarController>
GDproject/Constants.swift+3
@@ -43,6 +43,9 @@ let newsController = "NewsController"
4343/// constant for switching to view controller for log in app
4444let logInController = "LogInController"
4545
46+// constant for getting to messages
47+let messagesViewControllerId = "MessagesViewController"
48+
4649
4750let profileViewController = "ProfileViewController"
4851
GDproject/Controller/ News and channels/ChannelController.swift+25−5
@@ -33,6 +33,9 @@ class ChannelController: UIViewController, UITableViewDelegate, UITableViewDataS
3333
3434 var activeDataSource: ActiveTable = .people
3535
36+ // func to show preview of the current channel
37+ var onShowingPreview: ((Model.Channels)->())?
38+
3639 @IBOutlet weak var viewww: UIView!
3740
3841 @IBOutlet weak var textField: UITextField!
@@ -61,16 +64,33 @@ class ChannelController: UIViewController, UITableViewDelegate, UITableViewDataS
6164
6265 // TODO: update channel
6366 override func viewWillDisappear(_ animated: Bool) {
64− super.viewWillDisappear(animated)
65− if let _ = channel?.id { print("update")
66− Model.updateChannel(with: channel!)
67− } else { print("create")
68− Model.createChannel(with: channel!)
67+
68+ defer {
69+ super.viewWillDisappear(animated)
70+ }
71+
72+ guard let _ = self.navigationController?.viewControllers.lastIndex(of: self) else {
73+ if let _ = channel?.id { print("update")
74+ Model.updateChannel(with: channel!)
75+ } else { print("create")
76+ Model.createChannel(with: channel!)
77+ }
78+ return
79+ }
80+ // nou
81+ }
82+
83+ @objc func showPreview(){
84+ if let channel = channel {
85+ onShowingPreview?(channel)
6986 }
7087 }
7188
7289 func setUpController(){
7390
91+ // setting up the preview button for the editing or created channel
92+ navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Preview", style: .done, target: self, action: #selector(showPreview))
93+
7494 tableView.delegate = self
7595 tableView.dataSource = self
7696 tableView.register(UITableViewCell.self, forCellReuseIdentifier: itemCellId)
GDproject/Controller/Coordinators/ChannelsCoordinator.swift+18−3
@@ -33,7 +33,7 @@ class ChannelsCoordinator: BaseCoordinator{
3333 }
3434
3535 channels.onEditingModeBegins = { [unowned self] (channel, indexPath) in
36− let vc = self.presentNewsController(with: channel)
36+ let vc = self.presentChannelController(with: channel)
3737 self.navigationController?.pushViewController(vc, animated: true)
3838 vc.tabBarController?.tabBar.isHidden = true
3939 }
@@ -42,11 +42,26 @@ class ChannelsCoordinator: BaseCoordinator{
4242 navigationController?.setViewControllers([channels, nc], animated: false)
4343 }
4444
45− func presentNewsController(with channel: Model.Channels? = nil) -> NewsController {
45+ /// Function that presents channel controller
46+ ///
47+ /// - Parameter channel: channel that needs to be displayed
48+ func presentChannelController(with channel: Model.Channels? = nil) -> ChannelController {
49+ let mainContentVC = storyboard.instantiateViewController(withIdentifier: channelControllerId) as! ChannelController
50+
51+ // to show preview we need to instantiate newsController but with different functionality
52+ mainContentVC.onShowingPreview = { [weak mainContentVC, unowned self] ch in
53+ let vc = self.presentNewsController(with: ch, previewMode: true)
54+ mainContentVC?.navigationController?.pushViewController(vc, animated: true)
55+ }
56+ mainContentVC.channel = channel
57+ return mainContentVC
58+ }
59+
60+ func presentNewsController(with channel: Model.Channels? = nil, previewMode: Bool = false) -> NewsController {
4661 let mainContentVC = storyboard.instantiateViewController(withIdentifier: newsController) as! NewsController
4762 mainContentVC.channel = channel
4863
49− if channel == nil || channel?.id == -1 {
64+ if !previewMode {
5065 mainContentVC.news.onFullPost = {
5166 [weak self] (type,post) in
5267
GDproject/Controller/Coordinators/MessagesCoordinator.swiftnew file+32
@@ -0,0 +1,32 @@
1+//
2+// MessagesCoordinator.swift
3+// GDproject
4+//
5+// Created by cstore on 01/05/2019.
6+// Copyright © 2019 drHSE. All rights reserved.
7+//
8+
9+
10+import Foundation
11+import UIKit
12+
13+class MessagesCoordinator: BaseCoordinator {
14+
15+ var didEndSession: (()->())?
16+
17+ let storyboard = UIStoryboard(name: "Main", bundle: nil)
18+ private weak var navigationController: UINavigationController?
19+
20+ init(nc: UINavigationController) {
21+ self.navigationController = nc
22+ }
23+
24+ override func start() {
25+ show()
26+ }
27+
28+ private func show(){
29+ let vc = storyboard.instantiateViewController(withIdentifier: messagesViewControllerId) as! MessagesViewController
30+ navigationController?.viewControllers = [vc]
31+ }
32+}
GDproject/Controller/Coordinators/TabbarController.swift+6−1
@@ -12,6 +12,7 @@ import UIKit
1212protocol TabbarView: class {
1313 var onChannelsFlowSelect: ((UINavigationController) -> ())? { get set }
1414 var onProfileFlowSelect: ((UINavigationController) -> ())? { get set }
15+ var onMessagesFlowSelect: ((UINavigationController) -> ())? { get set }
1516 var onViewDidLoad: ((UINavigationController) -> ())? { get set }
1617}
1718
@@ -20,6 +21,8 @@ final class TabbarController: UITabBarController, UITabBarControllerDelegate, Ta
2021
2122 var onChannelsFlowSelect: ((UINavigationController) -> ())?
2223 var onProfileFlowSelect: ((UINavigationController) -> ())?
24+ var onMessagesFlowSelect: ((UINavigationController) -> ())?
25+
2326 var onViewDidLoad: ((UINavigationController) -> ())?
2427
2528 override func viewDidLoad() {
@@ -38,8 +41,10 @@ final class TabbarController: UITabBarController, UITabBarControllerDelegate, Ta
3841
3942 if selectedIndex == 0 {
4043 onChannelsFlowSelect?(controller)
41− } else {
44+ } else if selectedIndex == 2 {
4245 onProfileFlowSelect?(controller)
46+ } else {
47+ onMessagesFlowSelect?(controller)
4348 }
4449 }
4550}
GDproject/Controller/Coordinators/TabbarCoordinator.swift+11
@@ -26,6 +26,7 @@ class TabBarCoordinator: BaseCoordinator {
2626 tabbarView.onViewDidLoad = runChannelsFlow()
2727 tabbarView.onChannelsFlowSelect = runChannelsFlow()
2828 tabbarView.onProfileFlowSelect = runProfileFlow()
29+ tabbarView.onMessagesFlowSelect = runMessagesFlow()
2930 window?.rootViewController = tabbarView as! TabbarController
3031 }
3132
@@ -40,6 +41,16 @@ class TabBarCoordinator: BaseCoordinator {
4041 }
4142 }
4243
44+ private func runMessagesFlow() -> ((UINavigationController) -> ()){
45+ return { [unowned self] navController in
46+ if navController.viewControllers.isEmpty == true {
47+ let messagesCoordinator = MessagesCoordinator(nc: navController)
48+ self.addDependency(messagesCoordinator)
49+ messagesCoordinator.start()
50+ }
51+ }
52+ }
53+
4354 private func runProfileFlow() -> ((UINavigationController) -> ())
4455 {
4556 return { [unowned self] navController in
GDproject/Controller/Messages/MessagesViewController.swiftnew file+90
@@ -0,0 +1,90 @@
1+//
2+// MessagesViewController.swift
3+// GDproject
4+//
5+// Created by cstore on 01/05/2019.
6+// Copyright © 2019 drHSE. All rights reserved.
7+//
8+
9+import UIKit
10+
11+class MessagesViewController: UITableViewController {
12+
13+ override func viewDidLoad() {
14+ super.viewDidLoad()
15+
16+ // Uncomment the following line to preserve selection between presentations
17+ // self.clearsSelectionOnViewWillAppear = false
18+
19+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
20+ // self.navigationItem.rightBarButtonItem = self.editButtonItem
21+ }
22+
23+ // MARK: - Table view data source
24+
25+ override func numberOfSections(in tableView: UITableView) -> Int {
26+ // #warning Incomplete implementation, return the number of sections
27+ return 0
28+ }
29+
30+ override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
31+ // #warning Incomplete implementation, return the number of rows
32+ return 0
33+ }
34+
35+ /*
36+ override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
37+ let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
38+
39+ // Configure the cell...
40+
41+ return cell
42+ }
43+ */
44+
45+ /*
46+ // Override to support conditional editing of the table view.
47+ override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
48+ // Return false if you do not want the specified item to be editable.
49+ return true
50+ }
51+ */
52+
53+ /*
54+ // Override to support editing the table view.
55+ override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
56+ if editingStyle == .delete {
57+ // Delete the row from the data source
58+ tableView.deleteRows(at: [indexPath], with: .fade)
59+ } else if editingStyle == .insert {
60+ // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
61+ }
62+ }
63+ */
64+
65+ /*
66+ // Override to support rearranging the table view.
67+ override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
68+
69+ }
70+ */
71+
72+ /*
73+ // Override to support conditional rearranging of the table view.
74+ override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
75+ // Return false if you do not want the item to be re-orderable.
76+ return true
77+ }
78+ */
79+
80+ /*
81+ // MARK: - Navigation
82+
83+ // In a storyboard-based application, you will often want to do a little preparation before navigation
84+ override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
85+ // Get the new view controller using segue.destination.
86+ // Pass the selected object to the new view controller.
87+ }
88+ */
89+
90+}