Bläddra i källkod

VLCSettingsViewController: Move the knowledge of IASKAppSettingsViewController into the SettingsViewController

Carola Nitz 7 år sedan
förälder
incheckning
c98f69eeec

+ 9 - 21
Sources/VLCMenuTableViewController.m

@@ -20,7 +20,6 @@
 #import <QuartzCore/QuartzCore.h>
 #import "VLCWiFiUploadTableViewCell.h"
 #import "VLCAppDelegate.h"
-#import "IASKAppSettingsViewController.h"
 #import "VLCServerListViewController.h"
 #import "VLCOpenNetworkStreamViewController.h"
 #import "VLCSettingsController.h"
@@ -51,9 +50,8 @@ static NSString *WiFiCellIdentifier = @"VLCMenuWiFiCell";
     UITableView *_menuTableView;
     NSLayoutConstraint *_heightConstraint;
     NSLayoutConstraint *_leftTableConstraint;
+    VLCSettingsController *_settingsController;
 }
-@property (strong, nonatomic) IASKAppSettingsViewController *settingsViewController;
-@property (strong, nonatomic) VLCSettingsController *settingsController;
 
 @end
 
@@ -225,6 +223,13 @@ static NSString *WiFiCellIdentifier = @"VLCMenuWiFiCell";
 }
 
 #pragma mark - menu implementation
+- (VLCSettingsController *)settingsController
+{
+    if (!_settingsController){
+        _settingsController = [[VLCSettingsController alloc] initWithStyle:UITableViewStyleGrouped];
+    }
+    return _settingsController;
+}
 
 - (void)_revealItem:(NSUInteger)itemIndex inSection:(NSUInteger)sectionNumber
 {
@@ -243,24 +248,7 @@ static NSString *WiFiCellIdentifier = @"VLCMenuWiFiCell";
             viewController = [[VLCCloudServicesTableViewController alloc] initWithNibName:@"VLCCloudServicesTableViewController" bundle:nil];
     } else if (sectionNumber == 2) {
         if (itemIndex == 0) {
-            if (!self.settingsController)
-                self.settingsController = [[VLCSettingsController alloc] init];
-            VLCSettingsController *settingsController = self.settingsController;
-
-            if (!self.settingsViewController) {
-                self.settingsViewController = [[IASKAppSettingsViewController alloc] initWithStyle:UITableViewStyleGrouped];
-                settingsController.viewController = self.settingsViewController;
-                self.settingsViewController.navigationItem.leftBarButtonItem = [UIBarButtonItem themedRevealMenuButtonWithTarget:self.settingsController.viewController andSelector:@selector(dismiss:)];
-            }
-
-            IASKAppSettingsViewController *settingsVC = self.settingsViewController;
-            settingsVC.modalPresentationStyle = UIModalPresentationFormSheet;
-            settingsVC.delegate = self.settingsController;
-            settingsVC.showDoneButton = NO;
-            settingsVC.showCreditsFooter = NO;
-
-            viewController = settingsVC;
-            [self.settingsController willShow];
+            viewController = self.settingsController;
         } else if (itemIndex == 1)
             viewController = [[VLCAboutViewController alloc] init];
     } else {

+ 2 - 6
Sources/VLCSettingsController.h

@@ -11,11 +11,7 @@
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
 
-@class IASKAppSettingsViewController;
-@interface VLCSettingsController : NSObject
-
-@property (nonatomic, retain) IASKAppSettingsViewController *viewController;
-
-- (void)willShow;
+#import "IASKAppSettingsViewController.h"
+@interface VLCSettingsController : IASKAppSettingsViewController
 
 @end

+ 14 - 9
Sources/VLCSettingsController.m

@@ -15,7 +15,6 @@
 #import "VLCSettingsController.h"
 #import "VLCLibraryViewController.h"
 #import "IASKSettingsReader.h"
-#import "IASKAppSettingsViewController.h"
 #import "PAPasscodeViewController.h"
 #import "VLCKeychainCoordinator.h"
 
@@ -25,22 +24,28 @@
 
 @implementation VLCSettingsController
 
-- (id)init
+- (instancetype)initWithStyle:(UITableViewStyle)style
 {
-    self = [super init];
-    if (self)
+    self = [super initWithStyle:style];
+    if (self) {
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(settingDidChange:) name:kIASKAppSettingChanged object:nil];
+    }
 
     return self;
 }
 
-- (void)dealloc
+- (void)viewDidLoad
 {
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    self.navigationItem.leftBarButtonItem = [UIBarButtonItem themedRevealMenuButtonWithTarget:self andSelector:@selector(dismiss:)];
+    self.modalPresentationStyle = UIModalPresentationFormSheet;
+    self.delegate = self;
+    self.showDoneButton = NO;
+    self.showCreditsFooter = NO;
 }
 
-- (void)willShow
+- (void)viewWillAppear:(BOOL)animated
 {
+    [super viewWillAppear:animated];
     [self filterCellsWithAnimation:NO];
 }
 
@@ -52,7 +57,7 @@
     if (![keychainCoordinator passcodeLockEnabled])
         [hideKeys addObject:kVLCSettingPasscodeAllowTouchID];
 
-    [self.viewController setHiddenKeys:hideKeys animated:shouldAnimate];
+    [self setHiddenKeys:hideKeys animated:shouldAnimate];
 }
 
 - (void)settingDidChange:(NSNotification*)notification
@@ -63,7 +68,7 @@
         if (passcodeOn) {
             PAPasscodeViewController *passcodeLockController = [[PAPasscodeViewController alloc] initForAction:PasscodeActionSet];
             passcodeLockController.delegate = self;
-            [self.viewController presentViewController:passcodeLockController animated:YES completion:nil];
+            [self presentViewController:passcodeLockController animated:YES completion:nil];
         } else {
             [[VLCKeychainCoordinator defaultCoordinator] setPasscode:nil];
             [self didChangePasscodeStatus:NO];