Attempting to load the view of a view controller while it is deallocating … UIAlertController

后端 未结 7 1984
走了就别回头了
走了就别回头了 2020-12-24 01:55

I am building with the release version of Xcode 7.0. No storyboards, just nib files.

I have a single UINavigationController created by the app delegate

相关标签:
7条回答
  • 2020-12-24 01:56

    In my case, in Swift 3, I had missed the code below after adding the action

    presentViewController(theAlert, animated: true, completion: nil)
    

    So, the working code is as below

    override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    
         if (editingStyle == UITableViewCellEditingStyle.Delete) {
    
            let title = "Delete ????"
            let message = "Are you sure you want to delete this item?"
    
            let theAlert = UIAlertController(title: title,
                                       message: message,
                                       preferredStyle: .ActionSheet)
    
         let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
         theAlert.addAction(cancelAction)
    
         let onDelete = UIAlertAction(title: "Delete", style: .Destructive, handler: { (action) -> Void in
         self.items.removeAtIndex(indexPath.row)
         self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
    
         })
         theAlert.addAction(onDelete)
            presentViewController(theAlert, animated: true, completion: nil)
         }
         }
    

    //Note I was using a sample array

    var items = ["iPhone", "iPad", "Mac"]
    
    0 讨论(0)
  • 2020-12-24 01:57

    I was finally able to track it down to a UIActionSheet class variable inside a third-party library, Mapbox GL.

    I opened an issue with that dev team: https://github.com/mapbox/mapbox-gl-native/issues/2475

    Partial credit (and an up vote and bounty) to @Aaoli for mentioning having a UIAlertView as a class variable.

    0 讨论(0)
  • 2020-12-24 02:02

    I had this problem by not having a navigationController... I know it sounds obvious but jumping about in various projects this one didn't have a UINavigationControllerto hand.... so others coming here you might want to NSLog your nav controller just for sanity too...

    0 讨论(0)
  • 2020-12-24 02:03

    We had the same issue with UIAlertController.

    let alert = UIAlertController(title: "", message: "", preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: {(action : UIAlertAction!) in
                    //some actions
                                  } ))
    

    I had forgot adding the following line. Below line solved the problem.

    self.presentViewController(alert, animated: true, completion: nil)
    
    0 讨论(0)
  • 2020-12-24 02:04

    I had the same issue, when I tried to remove a "frame" observer on my view in a UIViewController subclass. I solved this issue by wrapping the removeObserver in a isViewLoaded(). What exactly are you observing?

    0 讨论(0)
  • 2020-12-24 02:05

    I solved this by moving some of my code to viewDidAppear. If I used UIAlertController, it would cause the same problem you mentioned and would not be displayed, and I solved it the same way.

    Let me know if that doesn't work!

    0 讨论(0)
提交回复
热议问题