How to get TabBarController to animate ViewControllers using Monotouch - animation

I have a TabBarController controlling 5 ViewControllers. When a tab is pressed to the right of current I'd like the new ViewController to slide in from the right side. Pressing left of the current tab would have the VC slide in from the left.
What is the best way to accomplish this?
Thanks!

Starting with iOS7, UITabBarController has 2 properties you can set to control the transitions:
public Func<UITabBarController, UIViewController, UIViewController, IUIViewControllerAnimatedTransitioning> GetAnimationControllerForTransition;
public Func<UITabBarController, IUIViewControllerAnimatedTransitioning, IUIViewControllerInteractiveTransitioning> GetInteractionControllerForAnimationController;
Apple documentation for those are here and there.

Related

How to #IBOutlet in the storyboard?

Watch question
I am new to iOS development. I got a project to maintain, the problem is that I can't find where in the storyboard belongs the variable. For example, in my ViewControl there is such a line
...
#IBOutlet weak var imgBottomFade: UIImageView!
...
So, I need to find this UI view in the storyboard, I open storyboard, but I see there are more than 10 screens each of them pretty sophisticated, and I start to click on each view on the screen and check the name (equal to imgBottomFade), one view by another, one screen by another... pretty annoying, I believe in XCode should be kind of way to find out where the UI view connects from Controller to Storyboard.
Let me know what I missed?
What you could do:
-open both code file and storyboard
-zoom out to view the whole storyboard (25% or smaller scale factor)
move mouse over the black dot in front of IBOutlet
-observe carefully in storyboard: you should see the UIImageView highlighted
or
-search for imgBottomFade in the search bar (at the very top left)
-you will find at the end of the list a reference to Main
-click it
-that will position the storyboard on the relevant VC
-expand view in the left panel of storyboard
-you should easily find imgBottomFade in the list of objects.
or
-search ViewControl VC in storyboard (just 10 to inspect)
-select it and expand its view object in the left panel of storyboard.
-you should find imgBottomFade in the list of objects.

Dragging UIButton on UIView in Interface Builder not working

I created a new Xib file, called MainViewController.xib. I dragged a View onto the builder, then plopped a UIButton on top of the view. Nothing happened, my button is on the view but not considered a subview. There is no hierarchy tree on the left column under the View icon that tells me my button is a subview.
Why is that? Every time I control+drag from the button to the view icon, the information for constraints pops up, instead of anything regarding an IBOutlet connection.
I'm using Xcode 7.1.2
I can control+drag to from my button to my .h file and create a property, but other than that, it's not recognized as a subview. Any help at all will be appreciated, I'm losing my mind.

Xcode Storyboard - Table View doesn't expand automatically when dragged in

In Xcode 7.3, when I drag in a Table View from the Object Library to the Storyboard for a single view app, it doesn't automatically expand to the full size of the view. I seen it do that in my Udacity class videos and in other videos on YouTube. Is there a setting in Xcode that will correct this? Thanks.
Yes, you need to "pin" the tableView at the ViewController. Am I right you have a simple ViewController and add a tableView to it?
Now, you need to open the Pin Menu and uncheck the checkbox "Constrains to margins". Now you add the constrains to the top, left, right and bottom to 0 and save it. Now the TableView should stretch the whole display.
If you only show a table in the ViewController you should use a UITableViewController.

UISwipeGestrureRecognizer not recogising swipe down - swift

All I have an UIImage in an UIView and I have added an UISwipeGestureRecogniser in both IB and in code. Code is like this :
EventImage.addGestureRecognizer(swipeRec)
EventImage.userInteractionEnabled = true
swipeRec.addTarget(self, action: "swipedView")
It will read a 'right' swipe fine, but I want to control a down swipe.
The UImage is in an View and the View is a part of a scrollview. So I have switched off DirectionLock and Bounces. So the UIView cannot be pushed down from the NAV BAR. And it still doesn't recognise a swipe down.
Any ideas ?
In IB I have created the recogniser by dragging an 'Swipe Gesture Recogniser' on to the image I want to be able to use the gesture.
Then if i select the 'Gesture in IB' I can set which way the gesture goes, and I select down like this :
Then I set an func in swift and it does not recogise down but when I change it to right i works fine.. I have checked the idea by using breakpoints and the breakpoint triggers on Right swipe (and left) but going down doesn't work.
I think it could be because I am in a scroll view.
I have added :
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
As I thought this may help.
Hope this is clearer.
A UISwipeGestureRecognizer can only recognise swipes in one direction.
That direction is set in the direction property of it.
If you want to swipe right or down then you will need two gesture recognisers. One for the right swipe and one for the down swipe.
recognizer.direction = UISwipeGestureRecognizerDirection.Down
Also, it help to read the documentation. All of this info is directly from there.

Create Back Button with Storyboards

I currently have 3 tabs connected to a common UITabBarController. When one of the tabs is selected the user is taken to a UITableView with 3 cells which can be selected. When a cell is selected the user is taken to a new page with a UINavigationBar at the top. My understanding is that the UINavigationBar is supposed to include some sort of back button and I couldn't figure out how to enable it.
In place of the default back button, I dragged a UIButton to the corner and connected it to the 'Show Detail' property of the previous view but when I press the UIButton I am taken to the right UITableView but the tabs are missing for navigation. What am I doing wrong? My segues look like this:
The UINavigationController has the back functionality. How to go back one view in UINavigationController?.
Here is some old tutorial on how to combine that with a tabbarcontroller. should still be the same principles.

Resources