Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Objective c 如何重新加载tableView,即在满足条件时调用viewDidLoad方法_Objective C_Ios_Uitableview - Fatal编程技术网

Objective c 如何重新加载tableView,即在满足条件时调用viewDidLoad方法

Objective c 如何重新加载tableView,即在满足条件时调用viewDidLoad方法,objective-c,ios,uitableview,Objective C,Ios,Uitableview,问题是,如果满足条件,我需要一种基本上擦除用户放入我数组中的所有输入数据的方法。我不熟悉Objective-C和iOS编程,但我认为解决方案可能是调用viewDidLoad方法,因此它将使用数组重置为默认值的方法来刷新应用程序。如果有其他合乎逻辑的方法,我将非常感谢您的帮助 简而言之,我需要像应用程序第一次启动时一样刷新阵列,而用户没有选择任何内容 这是我需要刷新的部分 if ([gradeRecieved objectAtIndex:i]==nil) { brea

问题是,如果满足条件,我需要一种基本上擦除用户放入我数组中的所有输入数据的方法。我不熟悉Objective-C和iOS编程,但我认为解决方案可能是调用viewDidLoad方法,因此它将使用数组重置为默认值的方法来刷新应用程序。如果有其他合乎逻辑的方法,我将非常感谢您的帮助

简而言之,我需要像应用程序第一次启动时一样刷新阵列,而用户没有选择任何内容

这是我需要刷新的部分

 if ([gradeRecieved objectAtIndex:i]==nil) {


            break; // if this condition is met the program must  begin anew.
编辑*我需要调用-(void)viewDidLoad方法

下面是更多的代码

-(IBAction)button:(id)sender{
    double sum = 0;
    int i = 0;
    double gradeEarned=0;
    double creditHours = 3;

    while (i<8){

       // [credits removeObjectIdenticalTo:[NSNull null]];
        if ([credits count ] ==0) {
            break; 
        }

            if ([credits objectAtIndex:i] == radioButtonA) {

           // [gradeRecieved replaceObjectAtIndex:i withObject:GradeA];
                [defArray addObject:GradeA];
                gradeEarned+=GradeA.intValue;
                i++;
                continue;
            }

            if ([credits objectAtIndex:i] == radioButtonB) {
           // [gradeRecieved replaceObjectAtIndex:i withObject:GradeB];
                [defArray addObject:GradeB];
              gradeEarned+=GradeB.intValue;
                i++;
                continue;
            }

            if ([credits objectAtIndex:i]== radioButtonC){
         // [gradeRecieved replaceObjectAtIndex:i withObject:GradeC];
                [defArray addObject:GradeC];
                gradeEarned+=GradeC.intValue;
                i++;
                continue;

            }
        if ([credits objectAtIndex: i] == defaulter) {

            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Custom button pressed" message:[NSString stringWithFormat:@"You pressed the custom button C"] delegate:self cancelButtonTitle:@"great"otherButtonTitles:nil];
            [alert show];
            [alert release];
        [self viewDidLoad];
            break;
        }
    }

    if ([defArray count]>0) {

                sum= ([defArray count])/(creditHours*gradeEarned);
        NSLog(@"%f",sum);}
-(iAction)按钮:(id)发送者{
双和=0;
int i=0;
双倍成绩=0;
双学分时数=3;
while(i0){
总和=([defArray count])/(creditHours*GradeEnowned);
NSLog(@“%f”,总和);}

但是,如果用户单击按钮,然后尝试重做所做的一些选择,则此新代码会导致应用程序冻结。如果您想再次调用该代码,请将该代码包装到方法中,并在
viewDidLoad
和其他任何您想要的地方调用该方法。以下是一些示例代码:

- (void)viewDidLoad {

  if ([gradeRecieved objectAtIndex:i]==nil) {


          [self refreshArray];
}

}

- (void)refreshArray {

   // refresh here


}
然后在任何需要的地方调用
[self-refreshArray]


我看你是新来的!如果这个答案是正确的,你可以向上投票或勾选!

viewDidLoad方法只在首次加载视图时加载一次。要重新加载数据,最简单的方法是创建另一个方法,并在每次需要加载数据时调用该方法

例如

-(void)loadingData{

//code to load the data

}

-(void)viewDidLoad{
//this will call the loadingData method to load the data
[self loadingData];

}

我相信OP是在问如何重新加载数组数据,而不是tableview数据,但您的评论很有趣,因为现在我意识到OP可能会将其数据放置在不可见的tableview中,并使用您的函数重新加载其数据。您就是灵感所在!+1 to You@RohanIv尝试了[tableview reloadData];方法调用,但正如qegal所说,只需在我的tableView中重新加载数据..我真正需要的是调用此方法…-(void)viewDidLoad您是否首先将数据放入tableView?reloadData方法不会对数组执行任何操作。如果要重新加载viewDidLoad,为什么不直接调用它?[self-viewDidLoad];您可能想看看我下面关于在tableview中嵌入数组的想法。我希望有一种更快的方法将数组重新加载到其原始值,而不是以编程方式。对于该程序,如果用户未选择按钮,数组值将设置为零。我想使用AlertView和t显示消息hen允许用户通过重新选择所需的按钮来纠正错误。
-objectAtIndex:
如果您谈论的是NSArray,则不能返回nil。不确定问题是什么。ross早期阶段我将数组的值设置为[NSNull null]作为一个默认值,我知道-objectAtIndex不能返回nil值,但是我收到了这个错误,这不是问题所在。