• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c - 如果满足条件,如何重新加载 tableView 即调用 viewDidLoad 方法

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:00:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

问题是,如果满足条件,我需要一种方法来基本上删除用户放入我的数组中的所有条目数据。我是 Objective-C 和 iOS 编程的新手,但我相信解决方案可能是调用 viewDidLoad 方法,因此它实际上会使用重置为默认值的数组值刷新应用程序。如果有任何其他合乎逻辑的方法,我将不胜感激。

简而言之,我需要在应用程序首次启动并且用户没有选择任何内容时刷新数组。

这是我需要刷新的部分。

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


            break; // if this condition is met the program must  begin anew.

Edit* 我需要调用 - (void)viewDidLoad 方法

这里有更多代码。

-(IBAction)buttonid)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);}

但是,如果用户单击按钮然后尝试重做一些选择,则此新代码会导致应用卡住



Best Answer-推荐答案


如果您想再次调用该代码,请将该代码包装到一个方法中,然后在 viewDidLoad 以及您想要的任何其他位置调用该方法。下面是一些示例代码:

- (void)viewDidLoad {

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


          [self refreshArray];
}

}

- (void)refreshArray {

   // refresh here


}

然后在需要的地方调用 [self refreshArray]!

我看你是新人!如果这个答案是正确的,你可以投票或打勾!

关于objective-c - 如果满足条件,如何重新加载 tableView 即调用 viewDidLoad 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10867080/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap