Ios4 modalview解除后TableView未重新加载

Ios4 modalview解除后TableView未重新加载,ios4,uitableview,modalviewcontroller,Ios4,Uitableview,Modalviewcontroller,我有一个页面,检查捆绑包中是否有员工列表,如果有,则在表视图中显示他们。但是如果捆绑包上没有列表,它会抛出一个模态视图控制器。然后需要有人登录,登录被验证,然后数据被下载 ModalView设置为第一页的代理。我可以很好地调用delegate方法并传递列表,但是当ModalView被取消时,表不会用数据重新加载tableview。如果我再次运行该项目,它会立即将列表加载到表视图中 下面是第一页ViewDidLoad上的方法 [self checkLastLoginDate]; [self loa

我有一个页面,检查捆绑包中是否有员工列表,如果有,则在表视图中显示他们。但是如果捆绑包上没有列表,它会抛出一个模态视图控制器。然后需要有人登录,登录被验证,然后数据被下载

ModalView设置为第一页的代理。我可以很好地调用delegate方法并传递列表,但是当ModalView被取消时,表不会用数据重新加载tableview。如果我再次运行该项目,它会立即将列表加载到表视图中

下面是第一页ViewDidLoad上的方法

[self checkLastLoginDate];
[self loadDataIntoArray];


if (currentData && dataLoadedIntoArray) {
    NSLog(@"sweet the data is current");
    [self createIndexedArray];
}    
else{
    NSLog(@"Data not loaded and not current");
    //push login view


///if ipad do this
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{
    //the above code was working fine. I am just testing pushing a dynamic xib
    LoginViewControlleriPad *loginControlleriPad = [[LoginViewControlleriPad alloc] initWithNibName:@"LoginViewControlleripad" bundle:nil]; 
    loginControlleriPad.modalPresentationStyle = UIModalPresentationFormSheet;
    loginControlleriPad.delegate = self;

    [self presentModalViewController:loginControlleriPad animated:YES];
    [self createIndexedArray];
    [loginControlleriPad dismissModalViewControllerAnimated:NO];               
    [self.tableView reloadData];
}
前两种方法检查以确保捆绑包中存在数据,并且最后一次登录日期在15天内

如果是,那么我创建一个IndexedArray,它显示得很好

如果数据不在捆绑包中或日期太旧,我会检查设备并使用模式视图。将设置代理,并显示ModalView

在ModalView中,我使用syncronus和asyncronus请求点击服务器以获取所需信息。然后我创建列表并将其传递回第一页

一旦建立了连接,我们在列表上做了一些工作,我们就将其保存到bundle中

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:kEMPLOYEE_PLIST];

/////write to file/////
[cleanResults writeToFile:path atomically:YES];

employeeList = [[NSMutableArray alloc ]initWithContentsOfFile:path];

if (employeeList != nil) 
{   
    [delegate passUserInfo:employeeList];

    //cant get login view to dismiss
    //[self dismissModalViewControllerAnimated:YES];
}
一旦我得到这份清单,我就把它归档,然后再把它读回来。如果列表中有信息,我调用委托方法

更新 这是delgate方法

- (void)passUserInfo: (NSMutableArray *)employeeDataArray
{
    employeeData = [[NSMutableArray alloc] initWithArray:employeeDataArray];
    [self.tableView reloadData];

    /////FIX////////
    [createIndexedArray];
}
一旦这被称为什么都不会发生。我试图取消模式视图,但第一页没有刷新,我的应用程序在遗忘中丢失。我只是对它是如何运行的以及如何在第一页刷新tableview感到困惑


有没有我错过的一步?我尝试过跟踪它,但在这一步后丢失了它

我实际上发现我的代码设置正确,我只需要调用一个方法,将数组排序为字母数组。一旦我从委托方法调用该方法,它就像一个蛇形咒语

更新


我有一个创建索引数组的方法。当我在delegate方法中调用它时,它重新加载了页面并将新的插入到表视图中。我很确定它一直在重新加载,我只是没有调用填充tableview中显示的数组的方法。

粘贴在模态视图解散时调用的方法。@h2c03我刚刚添加了您注释掉的委托方法[self.tableview reloadData]-取消注释可能有用;)这是在now中注释的,它来自testingi,我用丢失的代码更新了我的方法,我在下面解释了我的答案。