我已经实现了REFrostedViewController,这真的很棒。使用正确的视图控制器实现菜单(当点击正确的行时,它将转到相应的视图控制器)。但是,我无法使用新的视图控制器和标签重新加载菜单,具体取决于我的应用程序流程。
例如,假设菜单中有一行名为"登录"这会将用户带到" SignInViewController"。让我们假设他们已成功登录。我想重新加载菜单,所以现在该行显示"退出"并包含" SignOutViewController"。
谁能告诉我这是怎么做到的?截至目前,菜单行和视图控制器是在DEMOMenuViewController.m(在UITableView Delegate方法中)初始化时创建的。
答案 0 :(得分:1)
您可以这样做 - 为简单起见,此代码在菜单中只有一个部分。
@property (strong,nonatomic) NSMutable Array *menuTitles;
-(void) viewDidLoad {
[super viewDidLoad];
self.menuTitles=[[NSMutableArray alloc]init];
[self.menuTitles addObject:@"Login"]; // You can change this later using [self.menuTitles setObject:@"Logout" atIndexedSubscript:0];
[self.menuTitles addObject:@"Item 2"];
...
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionIndex
{
return [self.menuTitles count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.textLabel.text = self.menuTitles[indexPath.row];
return cell;
}