当我在我的应用程序中点击表格视图中的单元格时,我会呈现另一个视图控制器。这个视图控制器是使用initWithNibName:bundle:方法从一个nib初始化的,我有一些我通过接口构建器配置的IBOutlets的UIButtons。
90%的时间,一切都很好。我可以按预期显示和关闭视图控制器。使用导航栏上的按钮或使用滑动手势即可解除。
问题:
如果我开始轻扫以解除手势但是然后将手指放回屏幕左侧并允许视图控制器保留在原位,我对所有插座的引用都会被破坏。按钮的操作仍然会向我的代码发送有效调用,并且正在调用它们的连接方法,但是任何更新相同UI元素的尝试都会失败。
编辑:我怀疑该视图已被部分解除分配或其他内容。 (当滑动弹出手势启动时,会调用Dealloc。
答案 0 :(得分:0)
我建议您使用Apple的模板,Master-Detail应用程序,然后构建您的项目,这将是最简单,最简单的方法。如果你使用这种方法,你的项目将会很好地工作,并且不会搞砸。
答案 1 :(得分:0)
答案结果与Interface Builder无关。我的UI应该更新以响应像这样的委托回调方法:
- (IBAction)didPressButton {
manager.signInUser(self.user);
}
//Delegate Method
- (void)managerDidSignInWithSuccess {
// Update UI
}
我在init方法中分配了委托,当我部分刷掉VC时,它被调用并重新分配。将分配移动到viewDidLoad就可以了,现在一切都按预期工作了。
-(id)init {
if (self = [super init]) {
manager.delegate = self;
//other init stuff
}
}
应该是:
-(void)viewDidLoad {
manager.delegate = self;
}