下面有一个非常简单的View控制器。用户界面实际上只是一个按钮,底部有标签栏。
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都是push Show(例如Push)segues。
简而言之,相同的UIViewController在被一个视图引用时工作,但在被不同视图引用时则不行。
编辑1个具体问题
即使由带有标签栏的视图控制器进行查看,如何使视图控制器工作?标签栏是否会干扰presentViewController
代码?
我的猜测
以前带有标签栏的控制器的某些东西正在使用加载按钮弄乱视图控制器上的代码,并且当显示发生时,某些东西似乎与标签栏一起进入。我该如何防止这种情况?
编辑2更多说明
当我单击取消或选择图像时,它返回给我的视图控制器现在为空。按钮丢失。当我向视图添加标签时,所有添加的标签也会消失,除了底部的标签栏外,它只是白色。如果我从没有标签栏的视图中切换到加载图像视图控制器,则不会发生这种情况。
编辑3
不的视图在引用时带有标签栏,不通过导航控制器进行伪装。
通过导航控制器可以查看带有标签栏的视图,该视图栏通过导航控制器进行调整。
前视图功能不会导致错误。但它没有带标签栏
Latter功能带来了标签栏,我想要它。
编辑4
将segue更改为具有选项卡的UI上存在的模式会消除选项卡栏,但不能解决UI删除问题。这意味着只有标签栏的存在不会导致问题。
编辑5
如果我完全删除了故事板中的导航控制器,则一切正常,但标签栏已消失。如何使用导航控制器?