当我再次推回VC时,为什么IBOutlet标签消失了?

用户名

我有一个NavigationController来控制我的VC。VCA是rootViewController。VCB是带有tableView的viewController。CustomCell是一个自定义类,我从UITableViewCell继承了一个内置的xib文件,并且VCB使用具有CustomCell和AFNetworking类的委托函数来初始化单元格,如下所示:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    NSString *url=[NSString stringWithFormat:@"%@%@",testPath,urlString];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    [manager POST:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        dataList=responseObject;
        NSLog(@"af get data");
        NSLog(@"%@",[[dataList objectAtIndex:0]objectForKey:@"age"]);
        [self.tableViewList reloadData];
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error:%@",error);
    }];

}
return self;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier=@"RecommendTableCellIdentifier";
static BOOL nibsRegistered = NO;
if (!nibsRegistered) {
    UINib *nib = [UINib nibWithNibName:@"RecommendTableCell" bundle:nil];
    [tableView registerNib:nib forCellReuseIdentifier:CellIdentifier];
    nibsRegistered = YES;
}
RecommendTableCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
    cell=[[RecommendTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
dataRow=[dataList objectAtIndex:[indexPath row]];
cell.children=[dataRow objectForKey:@"children"];
if (cell.childrenLabel) {
    NSLog(@"YES");
}else{
    NSLog(@"NO");
}
NSLog(@"cell get data:");
NSLog(@"%@",[dataRow objectForKey:@"age"]);
[cell addContent:dataRow];
[cell.wantToSeeButton setTag:[indexPath row]];
[cell.wantToSeeButton addTarget:self action:@selector(iWantToSeeClicked:) forControlEvents:UIControlEventTouchUpInside];
return cell;

}

CustomCell xib有很多IBOutlet标签。

问题是:当我推入VCB时,单元格数据正常显示。然后我弹出回到VCA,然后再次推入VCB,这次,单元格数据什么都没有出现。如您所见,我在代码中上面有很多NSLog检查,所有检查都记录了正确的内容,但cell.childrenLabel记录了NO。看来我第二次进入VCB,IBOutlet childrenLabel尚未启动。有什么问题,如何解决?非常感谢!

尼尔

您不应该将nibsRegistered变量设为静态。

一旦将该变量设置为YES,它将在程序的整个生命周期中保持YES。当您第二次返回视图时,它认为该视图已被注册。

您可以添加一个属性,然后使用它,例如:

self.nibsRegistered = YES;

或者,更自然地,在您的viewDidLoad方法中执行注册代码(每个视图控制器实例仅运行一次)。

- (void)viewDidLoad
{
    [super viewDidLoad];

    UINib *nib = [UINib nibWithNibName:@"RecommendTableCell" bundle:nil];
    [tableView registerNib:nib forCellReuseIdentifier:CellIdentifier];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么当我使用 <TouchableWithoutFeedback> 时我的设计消失了?

当我在浏览器中加载页面时,我的</ form>标签消失了,这导致我的表单无法正常工作,为什么?

当我使它无效时,为什么弱IBOutlet NSLayoutConstraint变为零?

当我从 index.html 转到 index.html/#contact 时,为什么我的 CSS 消失了?

为什么当我使用 flex-direction 时我的 div 消失了?

当我将 Meteor App 转换为使用 Docker 时,为什么我的 MongoDB 数据消失了?

为什么当我调用.place_forget()方法时,我的Label不消失?

当我再次调用Rest API时,为什么会出现403(禁止)错误?

为什么当我再次运行main.go时视图是相同的

Flutter 为什么当我返回原始页面时构建再次运行?

使用SwiftUI,我们在列表中安装了一个Button。为什么当我点击按钮以显示模态然后再次将其关闭时,模态消失了?

当我将窗口移到不同的工作区时,为什么窗口消失了?

为什么当我尝试打印出数组元素时“ \ n”消失?

当我单击 ag-grid 中的过滤器时,为什么行会消失?

为什么当我重新停靠窗口时项目会消失?

为什么当我按下UP键时面板消失了?

为什么当我向右浮动时,背景色消失了?

为什么当我按下这个按钮时一切都消失了?

当我在for循环中添加{%include%}标签时,元素消失

当我将其添加到Microsoft团队时,为什么我的标签是空白的?

为什么只有当我再次将文本分配回变量时,TrimStart才起作用?

为什么当我使用分数时,出现 [LayoutConstraints] 错误。但是当我四舍五入这个数字时。错误消失了

当我使用javascript更改标签的文本时,为什么querySelectorAll不会弹出功能错误?

为什么当我动态加载脚本时,Firefox随机停止加载标签脚本?

当我使用角度标签设置ID时,setMainPage似乎不起作用,为什么?

当我检查时,为什么 css 显示在 react 渲染 html 头部的样式标签中

当我在C ++中推回一对时出错

谁能告诉我为什么当我更改填充时此列表消失了,而另一个却不消失?

当我在Android Studio 3.4.1中从Github克隆项目时,为什么build.gradle(项目)消失了?