Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 重新加载REFrostedViewController_Ios_Objective C - Fatal编程技术网

Ios 重新加载REFrostedViewController

Ios 重新加载REFrostedViewController,ios,objective-c,Ios,Objective C,我已经实现了,这真是太棒了。菜单由正确的视图控制器实现(当点击正确的行时,它将转到相应的视图控制器)。但是,根据应用程序的流程,我无法重新加载包含新视图控制器和标签的菜单 例如,假设菜单中有一个名为“登录”的行,该行将用户带到“登录查看控制器”。假设他们成功登录。我希望重新加载菜单,使该行现在显示“注销”,并包含“SignOutViewController” 谁能告诉我怎么做?到目前为止,菜单行和视图控制器是在DEMOMenuViewController.m(在UITableView委托方法中)

我已经实现了,这真是太棒了。菜单由正确的视图控制器实现(当点击正确的行时,它将转到相应的视图控制器)。但是,根据应用程序的流程,我无法重新加载包含新视图控制器和标签的菜单

例如,假设菜单中有一个名为“登录”的行,该行将用户带到“登录查看控制器”。假设他们成功登录。我希望重新加载菜单,使该行现在显示“注销”,并包含“SignOutViewController”


谁能告诉我怎么做?到目前为止,菜单行和视图控制器是在DEMOMenuViewController.m(在UITableView委托方法中)中初始化时创建的。

您可以这样做-为简单起见,此代码在菜单中只有一个部分

@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;
}

我假设您已经复制了示例代码,它只是在
cellforrowatinexpath
中使用一个静态数组?如果是这样,您需要更改代码,使其由存储为菜单类属性的数组驱动,并根据需要操作此数组的内容required@Paulw11谢谢你的快速回复。这是正确的。使用示例项目中的代码。您是否介意提供一个快速的例子,说明您的建议或进一步阐述?谢谢当我今天早些时候看到这段代码时,它是有意义的——现在仍然如此。但是,我不确定如何从任何其他视图控制器(例如testViewController)引用此类(DemoMenuViewController)。我不能简单地声明DemoMenuViewController的新实例,我需要获取创建菜单时最初加载的DemoMenuViewController的实例。是否正确?我不知道该怎么做。如果你能提供更多的见解,我们将不胜感激!感谢您的应用程序中只有一个菜单。在AppDelegate类的属性上保留一个引用可能是有意义的-这样您就可以在需要时使用
[UIApplication sharedApplication].delegate轻松获取它,然后引用属性感谢您的快速回复。这个属性不也需要是UITableView吗?为了刷新表,我将使属性成为视图控制器,并且在视图控制器上有一个方法,该方法操作数组并在需要时刷新表视图。这很有意义。非常感谢。还有一个问题,我会让你回答,我保证:)根据演示代码,我看不到DemoMenuViewController是从哪里调用的。我搜索了整个项目,但是没有找到。我不需要找到调用它的位置,以便让您对使用应用程序委派的建议生效吗?