В UITabbarController есть 5 элементов: VC0, VC1, VC3 (выбрано по умолчанию), VC4, VC5.
UITabbarController> NavigationController> VC1> VC1-A
UIImagePickerController представлен в VC4-A:
let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = .photoLibrary
imagePickerController.delegate = self
imagePickerController.allowsEditing = false
self.present(imagePickerController, animated: false)
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
let info = convertFromUIImagePickerControllerInfoKeyDictionary(info)
if let image = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)] as? UIImage{
topImage.image = image
}
picker.dismiss(animated: true, completion: nil)
}
Когда изображение выбрано и сборщик закрыт, представление перейдет к выбранному по умолчанию элементу VC3, но не к VC1-A.
Я нашел это внедавно тест на приложение, но я помню, что раньше он работал правильно.Теперь я не могу вспомнить, что я сделал, что может сделать это неправильно, обновление XCode, обновление версии Swift?Я знаю, что я не делаю изменений в этой части.
Следующие попытки также не работают:
self.navigationController?.present(imagePickerController, animated: false)
self.navigationController?.dismiss(animated: true, completion: nil)
self.navigationController?.popViewController(animated: true)
picker.popViewController(animated: true)
К настоящему времени я делаю это работает так:
picker.dismiss(animated: true, completion: {
self.tabBarController?.selectedIndex = 1
})
Но это не очень хорошая идея, чтобы решить проблему, надеюсь, кто-то может дать правильное решение.Благодаря.