在 StoryBoard iOS 中将 UIContainerveiw 添加到 SlideViewNavigation 的问题 [英] Issue in adding UIContainerveiw to SlideViewNavigation in StoryBoard iOS

查看:32
本文介绍了在 StoryBoard iOS 中将 UIContainerveiw 添加到 SlideViewNavigation 的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过 UIContainerView 在 SlidenavigationController 上的故事板中在视图底部添加一个持久按钮.

但是我在左侧滑出的导航上获得了空白视图(因为它在左侧滑出的表格内容列表中工作正常,没有容器视图)(

故事板

ma​​inPageViewController 的代码

 - (void)viewDidLoad {[超级viewDidLoad];UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@Main";捆绑:无];[[ParseServiceManager GetInstance] initializeParse];[SlideNavigationController sharedInstance].leftMenu = [[UINavigationController alloc] initWithRootViewController:[[LeftMenuViewController alloc] init]];[SlideNavigationController sharedInstance].rightMenu = [[UINavigationController alloc] initWithRootViewController:[[RightMenuViewController alloc] init]];[SlideNavigationController sharedInstance].menuRevealAnimationDuration = .18;[SlideNavigationController sharedInstance].enableSwipeGesture = FALSE;[[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidClose object:nil queue:nil usingBlock:^(NSNotification *note) {NSString *menu = note.userInfo[@menu"];NSLog(@"Closed %@", menu);}];[[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidOpen object:nil queue:nil usingBlock:^(NSNotification *note) {NSString *menu = note.userInfo[@menu"];NSLog(@"Opened %@", menu);}];[[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidReveal object:nil queue:nil usingBlock:^(NSNotification *note) {NSString *menu = note.userInfo[@menu"];NSLog(@"Revealed %@", menu);}];}

<块引用>

控制台警告:

SlideNavigationController 尚未初始化.要么在故事板中放置一个,要么在代码中初始化一个

如果有人在 CustomViewController 而不是 App 委托中初始化幻灯片导航时遇到类似问题,请帮我解决这个问题!

解决方案

我没有在 Storyboard 中添加任何 UiNavigationController(SlidenavigationController) 请参考截图,而是像下面这样以编程方式初始化

从 Appdelegate 使用 SlideNavigationController 推送 LoginView

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];LoginViewController *loginView = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"LoginViewController"];[登录视图 setModalPresentationStyle:UIModalTransitionStyleCrossDissolve];SlideNavigationController * slideNavCtl = [[SlideNavigationController alloc] initWithRootViewController:loginView];[self.window setRootViewController:slideNavCtl];

使用来自 Appdelegate 的 SlideNavigationController 推送 HomeView

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];HomeViewController *homeView = (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"HomeViewController"];[homeView setModalPresentationStyle:UIModalTransitionStyleCrossDissolve];SlideNavigationController * slideNavCtl = [[SlideNavigationController alloc] initWithRootViewController:homeView];[self.window setRootViewController:slideNavCtl];LeftMenuViewController *leftMenu2 = (LeftMenuViewController*)[mainStoryboard实例化ViewControllerWithIdentifier:@"LeftMenuViewController"];[SlideNavigationController sharedInstance].leftMenu = leftMenu2;

从 LOGINVIEW 登录后,我将像这样使用 LeftMenuViewController 或 SideBarViewController 推送到 HOMEVIEW 视图

 if(登录){UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier: @"HomeViewController"];-----这很重要,您需要在此处分配您的 LeftMenu 或 SidebarViewcontroller -----LeftMenuViewController *leftMenu2 = (LeftMenuViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"LeftMenuViewController"];[SlideNavigationController sharedInstance].leftMenu = leftMenu2;------------------------------[[SlideNavigationController sharedInstance] pushViewController:vc 动画:YES];}别的 {nslog(@"登录更新失败")}

I am trying to add a persistent button at the bottom of view via UIContainerView in storyboard on SlidenavigationController.

But I am getting a blank view on navigation of left slide out(where as it is working fine with list of table contents on left slide out with out the container View) (used a third party Tool with iOS-Slide-Menu )

Storyboard

Code for mainPageViewController

      - (void)viewDidLoad {
          [super viewDidLoad];


          UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
          [[ParseServiceManager GetInstance] initializeParse];



         [SlideNavigationController sharedInstance].leftMenu = [[UINavigationController alloc] initWithRootViewController:[[LeftMenuViewController alloc] init]];;
        
      [SlideNavigationController sharedInstance].rightMenu = [[UINavigationController alloc] initWithRootViewController:[[RightMenuViewController alloc] init]];
         [SlideNavigationController sharedInstance].menuRevealAnimationDuration = .18;
         [SlideNavigationController sharedInstance].enableSwipeGesture = FALSE;

         [[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidClose object:nil queue:nil usingBlock:^(NSNotification *note) {
    NSString *menu = note.userInfo[@"menu"];
    NSLog(@"Closed %@", menu);
}];

         [[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidOpen object:nil queue:nil usingBlock:^(NSNotification *note) {
    NSString *menu = note.userInfo[@"menu"];
    NSLog(@"Opened %@", menu);
         }];

         [[NSNotificationCenter defaultCenter] addObserverForName:SlideNavigationControllerDidReveal object:nil queue:nil usingBlock:^(NSNotification *note) {
             NSString *menu = note.userInfo[@"menu"];
             NSLog(@"Revealed %@", menu);
         }];


     }

Warning in Console as:

SlideNavigationController has not been initialized. Either place one in your storyboard or initialize one in code

If any one have faced similar issue to initialise the Slide-navigation in CustomViewController instead of App delegate, please help me in solving this!

解决方案

I didn't add any UiNavigationController(SlidenavigationController) in Storyboard Plz refer screenshot but initialized Programmatically like this below

Push LoginView with SlideNavigationController from Appdelegate

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];

LoginViewController *loginView = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"LoginViewController"];
[loginView setModalPresentationStyle:UIModalTransitionStyleCrossDissolve];
SlideNavigationController * slideNavCtl = [[SlideNavigationController alloc] initWithRootViewController:loginView];
[self.window setRootViewController:slideNavCtl];

Push HomeView with SlideNavigationController from Appdelegate

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle: nil];
HomeViewController *homeView = (HomeViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
[homeView setModalPresentationStyle:UIModalTransitionStyleCrossDissolve];
SlideNavigationController * slideNavCtl = [[SlideNavigationController alloc] initWithRootViewController:homeView];
[self.window setRootViewController:slideNavCtl];

LeftMenuViewController *leftMenu2 = (LeftMenuViewController*)[mainStoryboard
                                                                       instantiateViewControllerWithIdentifier: @"LeftMenuViewController"];
[SlideNavigationController sharedInstance].leftMenu = leftMenu2;

After LOGIN from LOGINVIEW I will push to HOMEVIEW view with LeftMenuViewController or SideBarViewController like this

 if(Login){

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"     bundle: nil]; 
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier: @"HomeViewController"];


-----This is Important ,You need assign ur LeftMenu or SidebarViewcontroller here-----------------

LeftMenuViewController *leftMenu2 = (LeftMenuViewController*)[mainStoryboard                                                                     instantiateViewControllerWithIdentifier: @"LeftMenuViewController"];
[SlideNavigationController sharedInstance].leftMenu = leftMenu2;
 ------------------------------

[[SlideNavigationController sharedInstance] pushViewController:vc animated:YES]; 

 }else {
nslog(@"Login Update failed")

}

这篇关于在 StoryBoard iOS 中将 UIContainerveiw 添加到 SlideViewNavigation 的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆