我有UITabBarController
“5个标签”。中间标签是UIViewController
(嵌入在NavigationController
中),其中包含MapView
,其中包含一个UITextView
和两个UIButtons
的其他几个视图。 }。其中一个按钮打开UIImagePickerController
,另一个按钮使用“AFHTTPRequestOperationManager”触发 API 调用,然后从手动触发[self performSegueWithIdentifier: @"SomeDetailView" sender: (id)self];
视图控制器(它是一个渲染细节视图的推送segue)。
我遇到的问题是,如果点击了相机按钮,并且UIImagePickerController
被实例化,它最终会阻止segue过渡。如果我从画廊中选择一张照片,拍摄一张新照片,或者根本不拍照并取消选择器,这无所谓。任何这些场景都会阻止segue过渡。
仍会触发实际的segue事件,并且仍然会执行prepareForSegue
方法,但实际转换不会发生。但是,如果我点击UITabBarController
上的另一个标签,然后点击返回中心标签,则会发生segue转换,我会收到“不平衡调用开始/结束外观转换”警告。
我排除的事情:
[self performSegueWithIdentifier: @"SomeDetailView" sender: (id)self];
,会导致同样的问题。其他信息:
View controller-based status bar appearance
设为NO [[self navigationController] setNavigationBarHidden:YES animated:NO]
或不同意。MKMapViewDelegate, UIImagePickerControllerDelegate, UIActionSheetDelegate, UITextViewDelegate
任何可能导致图像选择器阻止后续segue 的想法?
答案 0 :(得分:0)
一行代码......着名的最后一句话。
问题在于我将UITabBarController子类化并实现了viewWillAppear
方法,但没有调用[super viewWillAppear:animated];
- 一旦我添加了所有内容再次起作用。