Переключение контроллеров представления в расширении - PullRequest
0 голосов
/ 21 июня 2020

, так что у меня есть расширение здесь, в моем контроллере просмотра, теперь я пытаюсь добавить в нижнюю часть расширения кнопку @IBActionTapped, чтобы мой пользователь мог нажать кнопку, которая затем проверяет, что фотография сделана, а затем переходит к следующий контроллер представления, но он не позволяет мне добавить @IBAction, в котором говорится: «Могут быть объявлены только методы экземпляра @IBAction»

что я могу сделать, чтобы мой пользователь мог нажать кнопку, которая проверяет, что изображение было снято а затем переводит моего пользователя на следующий контроллер представления


    extension BackroundCheckViewController: UIImagePickerControllerDelegate, 
    UINavigationControllerDelegate {
    //cancel
    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    picker.dismiss(animated: true, completion: nil)
                       
    }
    //pick an image
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo 
    info: [UIImagePickerController.InfoKey : Any]) {
                       
    //get the image the selected
    if let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
                           
    self.ProfilePictureImageView.image = pickedImage
                        
    picker.dismiss(animated: true, completion: nil)
                        
    //upload to firebase
    PhotoService.savePhoto(image: pickedImage)
                    
                    }
                    
    // navigate to somewhere else
                    
                        
            }
                    
        }

1 Ответ

1 голос
/ 21 июня 2020

Вам нужно добавить все @IBOutlet и @IBAction в объявление основного контроллера, вы не можете добавлять их в расширение.

class BackroundCheckViewController: UIViewController {
    //...
    @IBAction func buttonTapped(_ sender: UIButton) {
        print("Got the action here")
        if ProfilePictureImageView.image != nil {
            print("User has picked an image navigating to somewhere..")
            let myViewController = MyViewController()
            if let navigationController = navigationController {
                navigationController.pushViewController(myViewController, animated: true)
            } else {
                present(myViewController, animated: true)
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...