当我们从表重新加载数据时,UITable视图数据源和委托的顺序是什么?

时间:2013-10-10 07:53:59

标签: iphone ios objective-c

你好,我是iOS的初学者在我的一项活动中,我想重新加载表数据......然后我应用了这段代码......

 -(void)buttonpress
{

   for(int i=0;i<buttonarr.count;i++)
   {
       NSString *butt=[NSString stringWithFormat:@"%@",[buttonarr objectAtIndex:i]];

       for(int j=0;j<LabelTag.count;j++)
       {
            NSString *labelbutt=[NSString stringWithFormat:@"%@",[LabelTag objectAtIndex:j]];

            if([butt isEqualToString:labelbutt])
            {
                  NSIndexPath *indexPath1 =[NSIndexPath indexPathForRow:j inSection:0];
                        NSLog(@"indexPath %@",indexPath1);
                        UITableViewCell *mycel=[self->table_AdviseTestDetails cellForRowAtIndexPath:indexPath1];
                        NSLog(@"cell %@",mycel);

                        UILabel *mybutton=(UILabel*)[mycel viewWithTag:100+j];
                        // mybutton.selected=YES;
                        NSLog(@"label %@",mybutton.text);


                        r=r+[mybutton.text floatValue];
                        NSLog(@"r %f",r);


                    }

                }
            }

          range=1;
  

[table_AdviseTestDetails reloadData];

        netcharges.text=0;
            z1=0;

            NSLog(@"label arr %@",LabelArr);


                   for(int i=0;i<LabelArr.count;i++)
                    {
                        NSString *y= [NSString stringWithFormat:@"%@",[[LabelArr objectAtIndex:i] valueForKey:@"value"]];


                     z1=z1+[y integerValue];


                        netcharges.text=[NSString stringWithFormat:@"%.2f",z1];
                        NSLog(@"net %@",netcharges.text);
                        //balance.text=[NSString stringWithFormat:@"%.2f",z];

                    }
                    netcharges.text=[NSString stringWithFormat:@"%.2f",[netcharges.text floatValue]-r];

                    NSLog(@"net %@",netcharges.text);
                    point.text=[NSString stringWithFormat:@"%.f",(floor([netcharges.text integerValue]/[[[Point_Result objectAtIndex:0]valueForKey:@"Value"] integerValue]))*[[[Point_Result objectAtIndex:0]valueForKey:@"Points"] integerValue]];
                    balance.text=netcharges.text;
                    NSLog(@"net %@",balance.text);


        }

这是我的代码请忽略所有代码认为有[table_AdviseTestDetails reloadData]; 当我们重新加载表然后我的控制器进入表数据源...           - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  并且在此控制器之后低于此线           [table_AdviseTestDetails reloadData]; 在这个控制器进入后......           - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 我有问题.....我想当我们重新加载表然后首先所有数据源和UITableview的委托运行然后运行其他的东西.....  所以在上面的代码....我想要拳头重载表数据使用这个

    [table_AdviseTestDetails reloadData];

然后运行表的所有委托和数据源.....

   - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
     - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

和控制器来自[table_AdviseTestDetails reloadData]的下面; 这行.....怎么能这样做..请解决这个问题......提前谢谢

1 个答案:

答案 0 :(得分:10)

这些是一般序列,我不包括所需的所有方法

#pragma mark
#pragma mark - Table view data source
1) -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
2) -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
3) -(float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
4) -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

#pragma mark
#pragma mark - Table view delegate
1) -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath