I am almost finished with my App "AR Note". There is only one bug I need to fix.
I have a main menu with 7 buttons linking to view controllers. To go back to main menu I use
@IBAction func unwindFromSources(segue: UIStoryboardSegue){
}
In my old version this works perfectly fine. All I changed is, that the background of my main menu is a blurred camera view, which works pretty good. Now, with this blur-camera-view-background, the App always crashes with Thread 1: signal SIGABRT! This seems to me awkward because it says no errors, and without the blurred camera view background the back-buttons are working fine.
Here is my main menu code:
import UIKit
import AVFoundation
class ViewControllerBlurrHome: UIViewController {
@IBAction func unwindFromSources(segue: UIStoryboardSegue){
}
let session: AVCaptureSession = AVCaptureSession()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
session.sessionPreset = AVCaptureSession.Preset.high
if let device = AVCaptureDevice.default(for: AVMediaType.video) {
do {
try session.addInput(AVCaptureDeviceInput(device: device))
} catch {
print(error.localizedDescription)
}
let previewLayer = AVCaptureVideoPreviewLayer(session: session)
self.view.layer.insertSublayer(previewLayer,at:0)
previewLayer.frame = self.view.layer.bounds
}
session.startRunning()
let blur = UIBlurEffect(style: .regular)
let blurView = UIVisualEffectView(effect: blur)
blurView.frame = self.view.bounds
blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.view.insertSubview(blurView,at:1)
}
// ShareButton
@IBAction func sharePressed(_ sender: Any) {
let activityVC = UIActivityViewController(activityItems: ["enter App Link here"], applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
}
}
This is how my main menu looks like:
This is how my main.storyboard looks like:
This is how I use the back-buttons:
This is an alternative viewcontroller.swift
, without the blur stuff, which works perfectly fine:
import UIKit
class ViewControllerBasis: UIViewController {
@IBAction func unwindFromSources(segue: UIStoryboardSegue){
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func sharePressed(_ sender: Any) {
let activityVC = UIActivityViewController(activityItems: ["enter App Link here"], applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = self.view
self.present(activityVC, animated: true, completion: nil)
}
DO you mean this?
There is this:
and this: