【问题标题】:SWRevealViewController not toggleSWRevealViewController 不切换
【发布时间】:2015-01-23 13:45:06
【问题描述】:

我正在尝试在不使用情节提要的项目中实现 SWRevealViewController。我认为这是可能的,但不幸的是我失败了。导航栏中的按钮不执行对他定义的“revealToggle”操作。所以 NavigationTableViewController 永远不会显示。我不明白为什么......我搜索了几个小时来解决这个问题。任何人的帮助将不胜感激。

#import "ContentViewController.h"
#import "NavigationTableViewController.h"

@interface ContentViewController()<SWRevealViewControllerDelegate>

@end

@implementation ContentViewController

- (void)viewDidLoad {
[super viewDidLoad];

// Do any additional setup after loading the view from its nib.
//[self.navigationItem setHidesBackButton:YES animated:YES];

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;

ContentViewController *frontViewController = self;
NavigationTableViewController *rearViewController = [[NavigationTableViewController alloc] init];
UINavigationController *frontNavigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
SWRevealViewController *revealController = [[SWRevealViewController alloc] initWithRearViewController:rearViewController frontViewController:frontNavigationController];
revealController.delegate = self;

[revealController panGestureRecognizer];
[revealController tapGestureRecognizer];


self.viewController = revealController;
self.window.rootViewController = self.viewController;

UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reveal-icon.png"]
                                                                     style:UIBarButtonItemStyleBordered target:revealController action:@selector(revealToggle:)];
self.navigationItem.leftBarButtonItem = revealButtonItem;

}

【问题讨论】:

    标签: ios objective-c navigation swrevealviewcontroller


    【解决方案1】:

    我终于设法解决了我的问题。根据John Lluch examples,我修改了我的代码。 这是不使用情节提要的解决方案:

    AppDelegate.h

    #import <UIKit/UIKit.h>
    #import "SplashScreenController.h"
    #import "SWRevealViewController.h"
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    @property (strong, nonatomic) UINavigationController *navigationController;
    @property (strong, nonatomic) SplashScreenController *viewController;
    @property (strong, nonatomic) SWRevealViewController *revealController;
    
    @end
    

    AppDelegate.m

    #import "AppDelegate.h"
    #import "ContentViewController.h"
    #import "NavigationTableViewController.h"
    
    
    @interface AppDelegate()<SWRevealViewControllerDelegate>
    
    @end
    
    @implementation AppDelegate
    
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        // Override point for customization after application launch.
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
        SplashScreenController *frontViewController = [[SplashScreenController alloc] initWithNibName:@"SplashScreenController" bundle:nil];
        NavigationTableViewController *rearViewController = [[NavigationTableViewController alloc] init];
        UINavigationController *frontNavigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
        SWRevealViewController *revealController = [[SWRevealViewController alloc] initWithRearViewController:rearViewController frontViewController:frontNavigationController];
    
        revealController.delegate = self;
    
        self.window.rootViewController = revealController;
    
        [self.window makeKeyAndVisible];
    
        return YES;
    
    }
    

    ContentViewController.h

    #import <UIKit/UIKit.h>
    
    @interface ContentViewController : UIViewController
    @end
    

    ContentViewController.m

    #import "ContentViewController.h"
    #import "SWRevealViewController.h"
    #import "NavigationTableViewController.h"
    #import <sqlite3.h>
    
    @interface ContentViewController()<SWRevealViewControllerDelegate>
    
    @end
    
    @implementation ContentViewController
    
    
    
    - (void)viewDidLoad {
    
        [super viewDidLoad];
    
        SWRevealViewController *revealController = [self revealViewController];
        [revealController panGestureRecognizer];
        [revealController tapGestureRecognizer];
    
        UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reveal-icon.png"] style:UIBarButtonItemStyleBordered target:revealController action:@selector(revealToggle:)];
    
        self.navigationItem.leftBarButtonItem = revealButtonItem;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-05
      • 2017-08-01
      • 2014-02-01
      • 2016-07-09
      • 2015-05-09
      • 2015-12-04
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多