Swift教程foodtracker:没有调用轻击手势的方法

时间:2015-12-29 10:09:32

标签: ios swift

我正在玩Foodtracker的苹果快速教程,并尝试用点击手势打开照片库。

//
//  ViewController.swift
//  FoodTracker
//
import UIKit

class ViewController: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    // MARK: Properties

    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var mealPhotoView: UIImageView!

    // MARK: UIImagePickerControllerDelegate
    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        // Dismiss the picker if the user canceled.
        dismissViewControllerAnimated(true, completion: nil)
    }

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        // The info dictionary contains multiple representations of the image, and this uses the original.
        let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage

        // Set photoImageView to display the selected image.
        mealPhotoView.image = selectedImage

        // Dismiss the picker.
        dismissViewControllerAnimated(true, completion: nil)
    }

    // MARK: Actions

    @IBAction func selectImageFromPhotoLibrary(sender: UITapGestureRecognizer) {
        print("selectImage called!")
        // Hide the keyboard.
        nameTextField.resignFirstResponder()

        // UIImagePickerController is a view controller that lets a user pick media from their photo library.
        let imagePickerController = UIImagePickerController()

        // Only allow photos to be picked, not taken.
        imagePickerController.sourceType = .PhotoLibrary

        // Make sure ViewController is notified when the user picks an image.
        imagePickerController.delegate = self

        presentViewController(imagePickerController, animated: true, completion: nil)
    }

    @IBAction func setDefaultLabelText(sender: AnyObject) {
        nameLabel.text = "Default Meal name"

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Handle the user input on textfield through delegate callback (self == this)
        nameTextField.delegate = self
    }

    // MARK: UITextFieldDelegate
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        // Hide the keyboard.
        textField.resignFirstResponder()
        return true
    }

    func textFieldDidEndEditing(textField: UITextField) {
        nameLabel.text = textField.text
    }

}

无论如何,当模拟器启动时,我点击照片,图库视图不会显示。我甚至看不到我的调试信息。

我已经删除了插座和操作,并通过添加UIImageView Outlet再次完成整个过程,添加手势识别器,添加手势识别器的操作但仍然没有发生它应该发生的事情。

1 个答案:

答案 0 :(得分:6)

我发现了问题 - 我没有启用默认情况下设置为false的用户交互。