A simple project which shows how to pull off custom view controller transitions.

Overview

Custom View Controller Transitions

This project explains and shows how to make custom view controller transitions in the most simple way possible. Each example builds off of each other.

Objects you make

  1. Transitioning delegate (Required) An object whose sole job is to vend either custom animators, presentation controllers, interactive animators or all of those to UIKit. Setting a custom transitioning delegate for a controllers' transitioningDelegate property is what tells UIKit you want to perform a custom controller transition.

  2. Animator or both an Animator and Interactive Animator (Optional) This decides the duration of the custom transition and performs the actual animations of the presented view during both presentation and dismissal. It does not decide the final frame of the presented view. Presentation controllers do. If it an interactive animator is created, it's only job is to calculate how much of the transition has been completed.

  3. Presentation Controller (Optional) This manages chrome outside of the presented or presenting view controllers and can animate those, such as a dimmer view. It also decides the final size of the presented view controller's view. It also can respond to changes occur in the app’s environment.

Objects UIKit makes

  1. Tranistion Context Contains all key components of the transition, like to the to and from view controllers.

  2. Transition Coordinator Used to hook into transitions and their animations to perform any other animations or changes on existing controllers. For example, if you wanted to animate the deselection of a table row in a root view controller on a navigation stack, you'd hook into the controller's transition coordinator to animate alongside a popped controller's presentation and dismissal. Much the same way, a presentation controller animates chrome using the presented controller's transition coordinator too.

Performing the Custom Transition

  1. Initialize the view controller to be presented.
  2. Assign your transitioning delegate to the controller’s transitioningDelegate property. Using it, return either 2a) Custom animator or interactive animator. 2b) A custom presentation controller. Requires that the controller's modal presentation style is set to custom. 2c) Or both.
  3. Call presentViewController:animated:completion.
You might also like...
This is a simple mobile app which is connect to the Twitter API
This is a simple mobile app which is connect to the Twitter API

Project 3 - My Twitter My Twitter is a basic twitter app to read your tweets. Time spent on two parts: 8.5 hours spent in total Twitter - Part II This

Control Nvidia jetbot which is based on Jetson Nano via iOS app

jetbot-remote-control This is very basic example project which control Nvidia Jetbot remotely via iOS app Based on jetbot of Nvidia, adding sample sou

A gem which can gen VFS YAML file.

yaml-vfs A gem which can gen VFS YAML file. vfs yamlwriter lets you create clang opt "-ivfsoverlay" ymal file, map virtual path to real path. ✅ It can

The iOS pod which can collect profile data to detect code coverage.
The iOS pod which can collect profile data to detect code coverage.

CodeCoverageKit Installation CodeCoverageKit is available through CocoaPods.

React Native Todo List example app which uses Redux for managing app state
React Native Todo List example app which uses Redux for managing app state

react-native-redux-todo-list A sample todo list app developed by using React Native and Redux. How to run the app Install react-native If you don't ha

MQTagged provides a Tagged structure which helps differentiating between values of the same type.

MQTagged provides a Tagged structure which helps differentiating between values of the same type.

A Collection of PropertyWrappers to make custom Serialization of Swift Codable Types easy

CodableWrappers Simplified Serialization with Property Wrappers Move your Codable and (En/De)coder customization to annotations! struct YourType: Coda

Codable, but with Super power made custom Codable behavior easy.

Codable, but with Super power made custom Codable behavior easy.

ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects.
ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects.

ConfettiKit is a custom framework used to add Confetti on your iOS/iPadOS projects. The kit provides variety of customisations inorder to design a confetti which matches your project's UI. ConfettiKit makes your work of adding Confetti on your project with just one line of code.

Owner
Jordan Morgan
iOS @buffer. Twitter: @jordanmorgan10 Writes: https://www.swiftjectivec.com Indie dev. Made Spend Stack (acquired) and currently writing a book.
Jordan Morgan
An iOS App which shows live AQI (Air quality index) data for different cities using Web-socket

AQI - Assignment This is an iOS App which shows live AQI (Air quality index) dat

Pratik Prajapati 3 Jul 21, 2022
🚀 Access my pull requests from the menu bar

OhMyPullRequests ?? Access my pull requests from menu bar. It lists pull requests that either: Someone requests you to review the pull request. Your p

Zihua Li 29 Jul 2, 2022
Managing Pull Requests and Issues For GitHub & GitHub Enterprise

Trailer For maintained binaries and/or more info: Latest macOS version Latest iOS version Trailer CLI for Mac, Linux and Windows Trailer for Android N

Paul Tsochantaris 1.1k Dec 14, 2022
A fancy collection style view controller that was inspired by this Profile Card mockup

JFCardSelectionViewController A fancy collection style view controller that was inspired by this Profile Card mockup: https://dribbble.com/shots/14584

Jeremy Fox 430 Dec 5, 2022
Discover Movies and TV shows - React Native

movieapp Discover Movies and TV shows Download APK file Download from Google Drive - v2.2.1 What's included Name Description React Native Build Native

June Domingo 1.8k Dec 28, 2022
Codepath-flix - An iOS app that shows the movies currently playing in theaters

Flix App Submitted by: Luis Mora User Stories REQUIRED (10pts) (2pts) User sees

null 0 Mar 2, 2022
Quotes shows you famous quotes to, hopefully, give you enlightment

"Quotes" shows you famous quotes to, hopefully, give you enlightment! You can also save/favorite the quotes that you liked to review later or show to your friends!

Filipe Kunioshi 1 Mar 7, 2022
tvOS example app, shows upcoming movies

UpcomingMovies tvOS example app. Shows upcoming movies as a list and in a detail movie screen, using TMDb API. Installation Run pod install on project

Ivan Magda 32 Nov 10, 2022
It's a pet project which has been developed as a code challenge

What is it ❓ It's a pet project which has been developed as a code challenge. It's written purely in Swift without using 3rd party frameworks. You can

iMamad 1 Apr 23, 2022
A starter project for Sample Project in Objective C.

A starter project for Sample Project in Objective C.

Zeeshan Haider 31 Jul 31, 2021