更新 2
viewDidAppear
执行两次,一次之前和一次之后,覆盖按钮被触摸。解决方法是添加一个条件viewDidAppear
,将控制权返回给调用类吗?如果是这样,我将不胜感激建议。或者也许执行两次这一事实viewDidAppear
暗示了另一种修复方法?
更新 2
更新 1
也许问题是我的用法,viewDidAppear
如下viewDidLoad
所示。有人可以帮忙吗?
- (void)viewDidAppear:(BOOL)animated
{
self.overlayViewController = [[BSsetupOverlayViewController alloc] initWithNibName:@"BSsetupOverlayViewController" bundle:nil] ;
// as a delegate we will be notified when pictures are taken and when to dismiss the image picker
self.overlayViewController.delegate = self;
[self showImagePicker:UIImagePickerControllerSourceTypeCamera];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
更新 1
更新 0
也许我不清楚不起作用的版本和起作用的版本之间的区别在于 Storyboard 用于不起作用的版本。为什么done
按钮在没有 Storyboard 的情况下可以工作,但在覆盖层中只涉及一个 nib 时却不行?
更新 0
此处的 UIButton能够关闭相机预览,但在我的实际应用中,点击 UIButton 只会暂时关闭预览和覆盖屏幕。预览立即返回。我认为问题在于我实现 UIImagePicker 的委托的方式,但我可能错了。
我在setup.zip
这里创建了一个包含不良行为的示例项目。