0

I have three page:-

first page:- ViewController

import UIKit


class ViewController: UIViewController, UIPageViewControllerDataSource {

    var pageViewController: UIPageViewController!
    var pageTitles: NSArray!
    var pageImages: NSArray!
    var pageImages1: NSArray!
    var pageImages2: NSArray!
    var pageImages3: NSArray!
    var pageImages4: NSArray!
    var pageImages5: NSArray!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.pageTitles = NSArray(objects: "A","B","C")
        self.pageImages = NSArray(objects: "clashs","wizard","archer")
        self.pageImages1 = NSArray(objects: "wizard","archer","clashs")
        self.pageImages2 = NSArray(objects: "clashs","wizard","archer")
        self.pageImages3 = NSArray(objects: "clashs","wizard","archer")
        self.pageImages4 = NSArray(objects: "clashs","wizard","archer")
        self.pageImages5 = NSArray(objects: "clashs","wizard","archer")



        self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController

        self.pageViewController.dataSource = self
        var startVC = self.viewControllerAtIndex(0) as ContentViewController
        var viewControllers = NSArray(object: startVC)
        self.pageViewController.setViewControllers(viewControllers as! [UIViewController], direction: .Forward, animated: true, completion:nil )
        self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.size.height - 60)

        self.addChildViewController(self.pageViewController)
        self.view.addSubview(self.pageViewController.view)
        self.pageViewController.didMoveToParentViewController(self)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func restartAction(sender: AnyObject) {
        var startVC = self.viewControllerAtIndex(0) as ContentViewController
        var viewControllers = NSArray(object: startVC)
        self.pageViewController.setViewControllers(viewControllers as! [UIViewController], direction: .Forward, animated: true, completion: nil)

    }



    func viewControllerAtIndex(index: Int) -> ContentViewController
    {
        if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count))
        {
            return ContentViewController()
        }

        var vc: ContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as!
        ContentViewController


        vc.imageFile = self.pageImages[index] as! String
        vc.imageFile1 = self.pageImages1[index] as!  String 
        vc.imageFile2 = self.pageImages2[index] as!  String
        vc.imageFile3 = self.pageImages3[index] as!  String
        vc.imageFile4 = self.pageImages4[index] as!  String
        vc.imageFile5 = self.pageImages5[index] as!  String
        vc.titleText = self.pageTitles[index] as! String
        vc.pageIndex = index
        return vc




    }



    //Musab:- page view controller data source

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        var vc = viewController as! ContentViewController
        var index = vc.pageIndex as Int
        if (index == 0 || index == NSNotFound)
        {
            return nil
        }

        index--
        return self.viewControllerAtIndex(index)

    }

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        var vc = viewController as! ContentViewController
        var index = vc.pageIndex as Int
        if (index == NSNotFound)
        {
            return nil
        }
        index++
        if (index == self.pageTitles.count)
        {
            return nil
        }
        return self.viewControllerAtIndex(index)
    }


    func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
        return self.pageTitles.count
    }
    func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
        return 0
    }
}

second page:- SecondController

import UIKit

class SeconfViewController: UIViewController {
    var detailImages: Array<UIImage>?

    @IBOutlet weak var label1: UILabel!
    @IBOutlet var background: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

Third page:- ContentViewController

import UIKit

class ContentViewController: UIViewController {



    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var imageView1: UIImageView!
    @IBOutlet weak var imageView2: UIImageView!
    @IBOutlet weak var imageView3: UIImageView!
    @IBOutlet weak var imageView4: UIImageView!
    @IBOutlet weak var imageView5: UIImageView!

    var pageIndex: Int!
    var titleText: String!
    var imageFile: String!
    var imageFile1: String!
    var imageFile2: String!
    var imageFile3: String!
    var imageFile4: String!
    var imageFile5: String!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.imageView.image = UIImage(named:self.imageFile)
        self.imageView1.image = UIImage(named:self.imageFile1)
        self.imageView2.image = UIImage(named:self.imageFile2)
        self.imageView3.image = UIImage(named:self.imageFile3)
        self.imageView4.image = UIImage(named:self.imageFile4)
        self.imageView5.image = UIImage(named:self.imageFile5)
        self.titleLabel.text = self.titleText   
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

now, when i clicking on a specific image, i want to move into second page

example:- when i clicking on a "clashs" image, i want to go (SecondViewController).

please, any one help me?

Wain
  • 118,658
  • 15
  • 128
  • 151

2 Answers2

0

You are more or less asking how to do some action on taps?

Here's an answer for that: How to assign an action for UIImageView object in Swift

And once the user has tapped:

self.navigationController?.pushViewController(SecondViewController(), animated: true)

Assuming you have a navigation controller.

Community
  • 1
  • 1
tbondwilkinson
  • 1,067
  • 2
  • 8
  • 16
0

you can add tap gesture on Image and set target .

self.imgView.userInteractionEnabled = true
 let imgTapGesture = UITapGestureRecognizer(target: self, action: "imageTapped:")
 imgTapGesture.numberOfTapsRequired = 1
 self.imgView.addGestureRecognizer(imgTapGesture)

And in target method whatever you want you can do.

func imageTapped(sender:UITapGestureRecognizer) ->Void
{

}