Swift 对 begin/end 外观转换的不平衡调用
Swift Unbalanced calls to begin/end appearance transitions for
这已经困扰我一段时间了。我在 UITabBarController
中有一个 UISplitViewController
。主视图是一个 TableView。当我点击一个单元格时,我会调出一个非常基本的视图控制器,其中只有一个 UIButton
居中。这是视图控制器的代码:
class TestViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonPressed(sender: AnyObject) {
let pickerC = UIImagePickerController()
pickerC.delegate = self
pickerC.modalPresentationStyle = .Popover
pickerC.popoverPresentationController?.sourceView = button as UIView
pickerC.popoverPresentationController?.sourceRect = (button as UIView).bounds
pickerC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Any
self.presentViewController(pickerC, animated: true, completion: nil)//4
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
}
如果我单击取消或 select 和图像,选择器控制器会正确关闭。当我单击后退按钮 return 到 TableView 时,问题就来了,我收到:
Unbalanced calls to begin/end appearance transitions for <TestViewController: 0x7fb882a72380>.
TestViewController
非常基础,为什么会这样?
如果您在先前的事务(动画)正在进行时尝试推送新的视图控制器,则会出现此问题。因此,请检查您的代码流并进行适当的更改。检查您的解雇和呈现视图动画。您可以使用 属性 setAnimation 来 'YES/NO' 解决这个
设置animated:NO,或许可以解决您的问题
对我来说,这个奇怪的问题是由于实施 UISplitViewController 后的以下行而发生的
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
.
.
.
// splitViewController.preferredDisplayMode = .PrimaryOverlay
.
.
.
}
通过在 didFinishLaunchingWithOptions 中评论这一行问题得到解决。
就我而言,我忘记删除故事板文件。我把它删除后,这个警告就没有了。
这已经困扰我一段时间了。我在 UITabBarController
中有一个 UISplitViewController
。主视图是一个 TableView。当我点击一个单元格时,我会调出一个非常基本的视图控制器,其中只有一个 UIButton
居中。这是视图控制器的代码:
class TestViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func buttonPressed(sender: AnyObject) {
let pickerC = UIImagePickerController()
pickerC.delegate = self
pickerC.modalPresentationStyle = .Popover
pickerC.popoverPresentationController?.sourceView = button as UIView
pickerC.popoverPresentationController?.sourceRect = (button as UIView).bounds
pickerC.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.Any
self.presentViewController(pickerC, animated: true, completion: nil)//4
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
self.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
}
如果我单击取消或 select 和图像,选择器控制器会正确关闭。当我单击后退按钮 return 到 TableView 时,问题就来了,我收到:
Unbalanced calls to begin/end appearance transitions for <TestViewController: 0x7fb882a72380>.
TestViewController
非常基础,为什么会这样?
如果您在先前的事务(动画)正在进行时尝试推送新的视图控制器,则会出现此问题。因此,请检查您的代码流并进行适当的更改。检查您的解雇和呈现视图动画。您可以使用 属性 setAnimation 来 'YES/NO' 解决这个
设置animated:NO,或许可以解决您的问题
对我来说,这个奇怪的问题是由于实施 UISplitViewController 后的以下行而发生的
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
.
.
.
// splitViewController.preferredDisplayMode = .PrimaryOverlay
.
.
.
}
通过在 didFinishLaunchingWithOptions 中评论这一行问题得到解决。
就我而言,我忘记删除故事板文件。我把它删除后,这个警告就没有了。