SWRevealViewController基于当前视图的不同内容

时间:2015-01-27 08:09:57

标签: ios objective-c xcode xcode6 swrevealviewcontroller

我正在使用SWRevealViewController来获取侧边菜单,以根据用户当前所在的标签显示不同的内容。我在AppDelegate中的被叫位置创建了一个全局变量,以找出用户所在的位置。对于我的侧边栏,我正在使用此条件来更改内容:

- (void)viewWillAppear:(BOOL)animated {
[super viewDidAppear:animated];

AppDelegate *del=(AppDelegate*)[[UIApplication sharedApplication] delegate];

if ([del.location  isEqualToString: @"Secure"]){
self.menu = [NSMutableArray
             arrayWithObjects:@"secure1",@"secure2",@"secure3",@"secure4",@"secure5", nil];
self.menu2 = [NSMutableArray
              arrayWithObjects:@"s1",@"s2",@"s3",nil];
    NSLog(@"THIS IS %@ menu",del.location);
}
else if ([del.location  isEqualToString: @"Employee"]){
    self.menu = [NSMutableArray
                 arrayWithObjects:@"emp1",@"emp2",@"emp3",@"emp4",@"emp5",@"emp6", nil];
    self.menu2 = [NSMutableArray
                  arrayWithObjects:@"e1",@"e2",@"e3",nil];
    NSLog(@"THIS IS %@ menu",del.location);
}
else if ([del.location  isEqualToString: @"Patient"]){
    self.menu = [NSMutableArray
                 arrayWithObjects:@"patient1",@"patient2",@"patient3",@"patient4",@"patient5",@"patient6", nil];
    self.menu2 = [NSMutableArray
                  arrayWithObjects:@"p1",nil];
    NSLog(@"THIS IS %@ menu",del.location);
}
}

似乎工作正常,NSLog语句都正确,但菜单和menu2的内容仍然没有改变。我哪里错了?

1 个答案:

答案 0 :(得分:0)

我没有添加

[self.tableView reload]; 

关闭if语句后,将其添加到cellForRowAtIndexPath(这会导致单元格不断重新加载,而不是表格 - 如果我的理解是正确的。)

关闭我的if语句并在问题解决后,在viewWillAppear中添加了它。

感谢Anbu.Karthik指出它!