0

我正在关注本教程: http: //www.appcoda.com/ios-programming-sidebar-navigation-menu/

但是,我需要能够从类视图控制器访问侧边菜单,如图所示在此处输入图像描述。虽然我的第一个视图控制器是用户需要登录到服务器的登录屏幕。为了解决这个问题,我在显示视图控制器中创建了一个属性@property (strong, atomic, retain) NSString *SWSegueFrontIdentifier;。然后我使用 getter 和 setter 来分配应该到/从哪个视图控制器。我在视图控制器中分配了第一个值sw_first,一切都很好。在第二张图片中看到的同学视图控制器的 ViewDidLoad 中,我分配了sw_front. 但是,即使在同一个函数中设置,如果我尝试从显示控制器打印属性,它最终返回 null。但是,如果我手动SWSegueFrontIdentifier将视图控制器内部切换到sw_front它很好,但最终跳过了我的视图控制器,这是我的登录控制器。我只需要一种从我的同学视图控制器访问侧面菜单的方法并且没有任何运气,因为似乎 www.cocoacontrols.com 上的大多数东西都是在没有情节提要的情况下使用的,我似乎无法得到它们去工作。在此处输入图像描述

此代码返回 null:

[self.revealViewController setSWSegueFrontIdentifier:@"sw_front"];
    tempMenuButton.target = self.revealViewController;
    tempMenuButton.action = @selector(revealToggle:);

NSLog(@"reveal view controller prop2: %@", self.revealViewController.SWSegueFrontIdentifier);

关于我能做些什么来让它发挥作用的任何想法?

编辑:我唯一能想到的是某种内存保留问题,但我似乎无法弄清楚。

4

1 回答 1

1

在声明属性@property (strong, atomic, retain) NSString *SWSegueFrontIdentifier;

您是否使用过合成器来创建 getter 和 setter

@synthesize SWSegueFrontIdentifier = _SWSegueFrontIdentifier;

然后你就这样做

self.revealViewController.setSWSegueFrontIdentifier =@"sw_front";

这就是我想出的。

于 2014-02-10T17:59:11.600 回答