我有一个UINavigationController
我可以重复使用导航控制器推送相互循环的照片和评论。
在我的MyViewController.h
:
@property (nonatomic, strong) NSMutableAttributedString *pLabel;
在我的MyViewController.m
:
- (void) viewWillDisappear:(BOOL)animated
{
if ([self.navigationController.viewControllers indexOfObject:self] == NSNotFound)
{
// A photo function gets the right label
_pLabel = // function gets correct label I want
}
[super viewWillDisappear:animated];
}
- (void)viewWillAppear:(BOOL)animated
{
_pLabel = // is already set
}
我点击一次MyViewController并设置mvc.pLabel = @"1st one"
。然后我单击一个按钮来创建一个新的MyViewController并设置mvc.pLabel = @"2nd";
然后当我点击后退按钮viewWillDisappear
被调用时,我的字典设置pLabel = @"1st"
。然后viewWillAppear
运行以显示第一个导航控制器视图,pLabel = @“2nd”;
为什么viewWillDisappear
没有保存pLabel?
感谢。
答案 0 :(得分:0)
您的属性绑定到MyViewController
的一个实例,因此当您弹出第二个视图控制器时,您将设置将消失的MyViewController
的属性,而不是那个将变为可见的属性
如果您没有保留对MyViewController
消失的引用,则没有理由更新其中一个标签,因为您下次可能会显示MyViewController
的全新实例。