在 StoryBoard iOS 中将 UIContainerveiw 添加到 SlideViewNavigation 的问题 [英] Issue in adding UIContainerveiw to SlideViewNavigation in StoryBoard iOS
问题描述
我正在尝试通过 UIContainerView 在 SlidenavigationController 上的故事板中在视图底部添加一个持久按钮.
但是我在左侧滑出的导航上获得了空白视图(因为它在左侧滑出的表格内容列表中工作正常,没有容器视图)(
故事板
mainPageViewController 的代码
- (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屋!