本帖最后由 zioc2014 于 2014-07-10 13:00:01 编辑

解决方案 »

  1.   

    - (void)loadUsers
    {
       [users removeAllobjects];
        users = [DBHelper getUsers];
     
        if(users != nil && users.count > 0) //显示数据
        {
            [tableViewMain reloadData];
            tableViewMain.hidden = NO;
            viewTips.hidden = YES;
        }
        else //显示无数据
        {
            tableViewMain.hidden = YES;
            viewTips.hidden = NO;
        }
    }这样用一个方法就好了
      

  2.   


    @implementation UsersViewController{
        NSMutableArray *users;
        UITableView *tableViewMain; //显示数据的tableview
        UIView *viewTips; //无数据时显示的view
    }
     
    - (void)viewDidLoad
    {
        [super viewDidLoad];
     
        tableViewMain = self.view.subviews[0];
        viewTips = self.view.subviews[1];    // 第一次无需reload tableView
        // 后面使用时,指定invalidate为YES 
        [self loadUsersAndInvalidateTableView:NO];
        
        //注册Observer
       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadUsers) name:@"DoneAddingUser" object:nil];
    }
     
    - (void)loadUsersAndInvalidateTableView:(BOOL)invalidate
    {
        users = [DBHelper getUsers];
     
        if(users != nil && users.count > 0) //显示数据
        {
            tableViewMain.hidden = NO;
            viewTips.hidden = YES;
        }
        else //显示无数据
        {
            tableViewMain.hidden = YES;
            viewTips.hidden = NO;
        }    if (invalidate)
        {
            [self.tableView reload];
        }
    }
     
    @end
      

  3.   


    应该是 [self.tableView reloadData]
      

  4.   

    你这个方法第一次载入的时候运行reloadData,会不会绑定2此tableview? 
      

  5.   

    我不知道你说的绑定是什么意思,苹果的mvc架构很重要的一件事就是解耦,tableview的数据和显示的样式都是通过他的协议方法(包括数据源和代理)来实现的,所以我不是很明白你说的绑定是指哪方面