glebreutov
glebreutov

Reputation: 785

Change view by swipe, using storyboard

I wanna create an app that will have three view controllers. To navigate between them I wanna use swipes and page control (UIPageControl). Also i wanna do this using Stroryboards as much as possible.

What's the best way to implement this?

Thanks

Upvotes: 4

Views: 4665

Answers (2)

nycynik
nycynik

Reputation: 7541

This could also be achieved using the storyboard and segues.

The basic idea is you would create the segues between the 3 UIViewControllers, then capture the swipe gestures, and then call the perform segue to move between views.

On each view, you will have one or two segues:

             [ View 1 ]  -> gotoView2
gotoView1 <- [ View 2 ]  -> gotoView3
gotoView2 <- [ View 3 ]  

Here is a video of how to do it. http://www.youtube.com/watch?v=5u1-DGiUhXU

Upvotes: 4

George Green
George Green

Reputation: 4905

This is actually quite simple to implement if you know what you need to do. UIPageControl does not help you to achieve paging, it merely displays the dots like on springboard to show what page you are on.

As far as I am aware storyboards let you switch between views or controllers, which if a paging effect is what you are after is not going one much use to you. Your best bet would be to use one view controller and a scrollview on its view.

If you set

scrollView.pagingEnabled = YES;
scrollView.contentSize = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);

Or something to that effect (you can change the content size to whatever size you want your pages to be. Your scroll view will then snap to those boundaries when scrolling.

If you want to display the current page with a UIPageControl you will need to also add one to your view controller's view. Then implement the UIScollViewDelegate protocol and the method:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    pageControl.currentPage = (calculate current page here);
}

In order to make you pages, simply add subviews to the scroll view and it will page between them depending on your set content size.

Hope this help, if it seems unclear or you need any more help, let me know :)

Upvotes: 1

Related Questions