在AppDelegate中滑动,引用右侧控制器

时间:2013-06-03 20:09:59

标签: iphone ios objective-c appdelegate ecslidingviewcontroller

我正在使用ECSliding,我遇到了这个问题!

我有一个topView和两个菜单,

left (LeftViewController) 
right (RightViewController)

UIViewController

我想在AppDelegate中向左视图控制器提供右视图控制器的引用。

我在LeftViewController.h做过:

#import "RightViewController.h"
@class RightViewController;
@property (strong, monatomic) RightViewController *rightView;
<{1}}中的didFinishLaunchingWithOptions中的

AppDelegate.m

但我在RightViewController *rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Right"]; LeftViewController *leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Left"]; leftViewController.rightView = rightViewController; 上的AppDelegate.m收到了此错误:

self.storyboard

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

首先,AppDelegate没有属性storyboard,它是一个UIViewController属性。

其次,如果要加载主故事板并实例化视图控制器,则应尝试以下操作:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"YourStoryboardName" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"YourViewController"];

还要确保正确设置了视图控制器标识符。

答案 1 :(得分:0)

不要静静地给予他们彼此的参考。相反,当它们是滑动视图控制器self.slidingViewController的一部分时,它将是一个有效的引用,您可以根据实际存在的关系进行导航:

self.slidingViewController.underLeftViewController

使用它时,您应该检查类并转换引用:

LeftViewController *leftController = self.slidingViewController.underLeftViewController;

if ([leftController isKindOfClass:[LeftViewController class]]) {
    leftController. ...;
}