我下面有一个非常简单的视图控制器。 UI 实际上只是一个带有底部标签栏的按钮。
import UIKit
class ImageAdderViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func ButtonPressed(sender: AnyObject) {
let imagePicker = UIImagePickerController()
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
self.presentViewController(imagePicker, animated: true, completion: nil)
}
}
从照片库中选择图像后,如果我单击取消或选择图像,它将返回到视图。但除了选项卡视图之外,该视图现在是空的。
这是我的困惑开始的地方:
此代码适用于只有一个控制器的空项目。
当我从底部没有选项卡栏的不同控制器转到该控制器时,此代码有效。此时,带有我们所选择的按钮的 UI 也没有选项卡栏。
当我通过具有选项卡栏的控制器连接到控制器时,此代码不起作用。
所有 Segues 都是推送 Show(例如 Push)segues。
简而言之,同一个 UIViewController 在由一个视图分隔时可以工作,但在由另一视图分隔时则不起作用。
编辑 1 具体问题
即使视图控制器被带有选项卡栏的视图控制器分隔,如何使视图控制器正常工作?标签栏会干扰吗presentViewController
code?
My Guess
不知何故,带有选项卡栏的上一个控制器中的某些内容弄乱了带有加载按钮的视图控制器上的代码,并且当显示发生时,似乎正在使用选项卡栏输入某些内容。我该如何防止这种情况?
编辑 2 更多说明
当我单击“取消”或选择图像时,它返回给我的视图控制器现在也是空的。按钮不见了。当我向视图添加标签时,所有添加的标签也会消失,除了底部的标签栏之外,它只是白色。如果我从没有选项卡栏的视图继续加载图像视图控制器,则不会发生这种情况。
EDIT 3
视图的作用not隔离时带上标签栏,是not通过导航控制器继续。
分隔时确实带有选项卡栏的视图是通过导航控制器分隔的。
前视图功能不会导致错误。但它不带标签栏
后者的功能带来了标签栏,我想要这个。
EDIT 4
将 Segue 更改为 UI 上存在选项卡的模式可以消除选项卡栏,但不能解决 UI 删除问题。这意味着仅仅标签栏的存在不会导致问题。
EDIT 5
如果我完全删除故事板中的导航控制器,那么一切都会正常,但选项卡栏消失了。我怎样才能让它与导航控制器一起工作?