表格视图在NSNotification之后更改地址

时间:2016-07-01 11:52:53

标签: ios objective-c uitableview

我在这里切换两个View Controller并遇到一些我不理解的行为。

VC A正在托管一个表视图,该视图在故事板中定义,其中委托和数据源引用VC A,该表也引用了VC A.

表格视图是VC A的属性。

启动应用程序时,一切都很好。表格视图由来自NSUrl的数据填充。

这是来自tableView的日志:(UITableView *)tableView numberOfRowsInSection:

 find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty > /volume1/Folder/NotEmptyFolders.txt

现在,如果我点击表格视图中的某个项目,我将切换到VC B并显示详细信息。

当我像这样切换回VC A时,神秘感显示出来:

   2016-07-01 12:53:01.662 Loc2[18612:4091131] tbl:0x7f832f022200
   2016-07-01 12:53:01.663 Loc2[18612:4091131] count:0  
   2016-07-01 12:53:01.663 Loc2[18612:4091131] tbl:0x7f832f022200  
   2016-07-01 12:53:01.663 Loc2[18612:4091131] count:0  
   2016-07-01 12:53:01.671 Loc2[18612:4091131] tbl:0x7f832f022200  
   2016-07-01 12:53:01.671 Loc2[18612:4091131] count:0  
   2016-07-01 12:53:06.743 Loc2[18612:4091131] tbl:0x7f832f022200  
   2016-07-01 12:53:06.743 Loc2[18612:4091131] count:25

object:_detailDataHolder是一个指向该类的指针,该类包含用于表视图的数据。

现在回到VC A中,表视图已初始化,但当通知出现时,表的地址会发生变化,如日志中所示:

- (IBAction)returnToMain:(id)sender {

            [self performSegueWithIdentifier:@"DetailsReturnToMain" sender:sender];

            [NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(updateTargetVC) userInfo:nil repeats:NO];

}

-(void) updateTargetVC{
            [[NSNotificationCenter defaultCenter] postNotificationName:@"detailsReturned" object:_detailDataHolder userInfo:nil];
}

VC A收到通知:

2016-07-01 12:53:12.659 Loc2[18612:4091131] tbl:0x7f832c106000
2016-07-01 12:53:12.659 Loc2[18612:4091131] count:0
2016-07-01 12:53:12.659 Loc2[18612:4091131] tbl:0x7f832c106000
2016-07-01 12:53:12.659 Loc2[18612:4091131] count:0
2016-07-01 12:53:12.663 Loc2[18612:4091131] tbl:0x7f832c106000
2016-07-01 12:53:12.663 Loc2[18612:4091131] count:0
2016-07-01 12:53:16.662 Loc2[18612:4091131] tbl:0x7f832f022200
2016-07-01 12:53:16.662 Loc2[18612:4091131] count:25

我被困在这里并且没有任何改变表格视图地址的信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

要添加评论:

抱歉,但我认为你了解Larme,ClausM。除非你的segue是一个解开segue,否则你回到你的代码。你在VC层次结构中“进一步向下”,即你创建一个新的(然后获得一个viewDidLoad消息,有自己的表和所有)。最后你有两个A实例,显然你的日志来自第二个。我假设您处理通知回调的方式只导致A2记录任何内容(我认为是因为您通过了_detailDataHolder,我需要看看您的通知回调如何进一步判断)。

总结一下: 您创建一个实例A.单击一个单元格实例化B,您可以在其中执行A稍后需要的其他内容。然而,您不会返回A,而是实例化A2。 然后获取数据。显然,它有一个新的表格以及其他所有内容。

如果情况并非如此,我们无法在没有您的其他信息(即代码)的情况下提供进一步的反馈。