首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现ECSlidingViewController

实现ECSlidingViewController
EN

Stack Overflow用户
提问于 2013-06-26 10:15:43
回答 1查看 1.1K关注 0票数 1

我正在尝试实现ECSlidingViewController &我在我的故事板中使用了segues。我遇到了一个问题,MainViewController的viewDidLoad被调用了两次并且

代码语言:javascript
复制
self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];

总是被设置为空。更多信息。

  1. LogIn屏幕( InitViewController )-通过segue

在我的MainViewController中,我有以下代码。

代码语言:javascript
复制
-(void)addMenuViewControllerWithGesture{
self.view.layer.shadowOpacity = 0.075f;
self.view.layer.shadowRadius = 10.0f; 
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
if (![self.slidingViewController.underLeftViewController isKindOfClass:[rsMenuViewController class]]) {

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}
}

在我的InitViewController (LogIn)中

代码语言:javascript
复制
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

MainViewController *controller = segue.destinationViewController;

// setting some values before going to the next view.

controller.id = 0;

controller.name = @"harish";

self.topViewController = controller;

}

通过这样做,MainViewController的viewDidLoad将被调用两次,下面的值总是设置为null。

代码语言:javascript
复制
self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];

希望一切都清楚。我被困在这里寻找解决方案。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-08 16:49:00

好吧,我想出来了。经过漫长艰苦的经历,我终于明白了。我在这里问了一个类似的问题:iOS Adding Menu Causes Crash When Not First View,并最终回答了它。我最近刚问到你的问题。

因此,假设您有许多文件(每个文件都有.m和.h ):

InitViewController

MenuViewController

MainViewController

SpeakersView

目标是使用一个按钮(不是幻灯片菜单上的按钮)切换到MainViewController,但这样做直接导致幻灯片菜单为null,菲利普·米尔斯指出。

相反,我把它放在InitViewController.h中,就在@Interface下面:

代码语言:javascript
复制
@property (nonatomic, retain) NSString *location;

下面是InitViewController.m中的@implementation:

代码语言:javascript
复制
@synthesize location;

我最初在InitViewController.m中的ViewDidLoad中有这样的内容:

代码语言:javascript
复制
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];

我把它改成了这个

代码语言:javascript
复制
if([location length] == 0){location = @"Main";}
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:location];

这样,如果变量为空,则默认为@"Main“。

然后在MainView.m中,在按下按钮后执行代码时,我有以下内容:

代码语言:javascript
复制
InitViewController *ini;
ini = [self.storyboard instantiateViewControllerWithIdentifier:@"Init"];
ini.location = @"Speakers";

同时,视野也能很好地切换到扬声器。更准确地说,它切换到InitViewController,它自动切换到扬声器或任何我设置的位置。

希望这能帮到你。

如果有任何问题,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17317354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档