enter image description hereI want to make like this! but I have 2 question while I make this.
can I put in segment control in navigation bar?
In now, I don't know how to do. so I make it segment control in Viewcontroller.
Under the segement control, I make it as UIView. so when I click segment index, I can change view.alpha to display which I want to show. but I have problem in this way. when I click uitablecell I want to navigate other view. but it doesn't work in uiview. so should I change this to uiviewcontroller? and Isn't there only one uiview controller in One view?
1.can I put in segment control in navigation bar?
2. I want to navigate view to view. not using viewcontroller
Related
Please refer the image, where I have used the Navigation BarI tried surfing all over, but could not get the solution. Also, I am new to swift, so kindly help! I have a view controller -- Login page, which is connected to an another view controller-- CoreView.swift. I have created 5 subviews in CoreView ViewController. I want to add a Tab Bar where, user can click on the images of the Tab Bar and the corresponding subview should get open. Also, help me to add the images as the subview icon. the icon does not get displayed.
Also, when I try to put the back button from navigation controller, I can set the Title and prompt message, but not the back button in sub views, why so?
Thanks!
Look at this image to see the code and the xib file made
I have the following changes. but still no luck..
Regarding the navigation bar -> you should be able to just drat and drop the UIButton into your left bar button item:
EDIT: updated image to actually show xib implementation.
EDIT2: to link the button use this:
#IBAction func buttonTapped(sender: AnyObject) {
print("Back button tapped")
}
Make sure to connect the button in your interface builder to your custom view. You need to have a custom UIView subclass and should be chosen for your File's owner.
I have created a tab bar controller and I noticed that when I change tabs its an abrupt change-scene. Is there a way to make it so that when a tab is changed it slides to that tab?
I don't think, that this is possible with a UITabBarController. If you want an animated change between the content, you will need to implement another structure. You could for example use a collectionview, where the cells hold your content-controllers views, and where you change to the other view per button-tap-action and call collectionView.scrollToItemAtIndexPath()
I need to create below thing
Currently i'm using WYPopover , but I can't create the button since it's outside of the popover. Is there any existing solution out there ? Many thanks
Create a bigger popover UIView holding all your child elements (current popover + button) and make its background transparent or however you wish.
Popover-controller's are exclusively used in iPad. If you want to use in iPhone, you should create it in a custom way.
I am not familiar with the XYPopover in Github, but normally the custom created popover should be dismissed whenever the user taps any place in the screen. That is one of the key feature of the popovers.
Normally the custom popovers are build like, adding a hidden parent view and then the visible image of a popover frame on it.
You should to do the following,
Avoid dismissing the parent view on tap of parent-hidden-view.
Add a close button at the area where you want to show the close button, on top of the parent-hidden-view.
Capture the button click and dismiss the view (remove the view from superview)
How to customize your need
Creating custom popover view is not a big task. It will take maxim one day, try it your self.
One Parent view with clear color
One background image of a popover frame.
View-inside popover (this needs to be customized for UIPopover also).
Close button.
I would like to create a small popup window that appears in front of an existing UIView. This popup window needs to take text input and have a button on it. This popup window should appear when a UIButton is pressed.
I'm using a storyboard and am wondering what is the best approach to complete this? Should I just be using another UIView? If so, how do I go about creating the new view on top of the existing UIView?
Any guidance would be appreciated.
Thanks.
It can be as simple as adding a new UIView with all the various controls / labels you want in it and put that new view on top of your view controller's main view (this might be considered as a subview).
Then set the new view to an outlet in your view controller and hide it (via the attributes inspector).
When the button is touched, you can programatically set the "popup window" view's ".hidden" property to "NO".
I am a newbie to IOS programming and currently i have a tab bar application with two tabs. I have two questions.
The first tab shows a map, imagine it with some pushpins. There is a button on the navigation bar and when this is clicked i want the map view to to move out and a list view to come in. You can see the UI from the image. The button is called list.
Now when i click list I want this view to go away and the list view to come in. So here are my questions ?
1) How do i do this ? I tried the navigation model but i don't want that because I do not want a back button. I tried to make two different views and just dragged the button to that view but the app crashes. I just want the list button on the nab bar and when clicked the view changes to the list view and the button text changes to map. So now if I click the button again it should go back to the map view and the button changes to list.
2) How do i achieve the animations for this ? Ive seen some app where the page flips around and I've seen some options like reducing the opacity etc but I want to achieve the flip animation.
Thank You for any help I get. I really appreciate it.
Interface Builder can do most of this. Hold down the control key and drag from your map View Controller's UIBarButtonItem titled "List" to your list View Controller, then choose the Action Segue "modal". An arrow appears representing the segue; click on it and use the Attributes Inspector to change the Transition to "Flip Horizontal". Here's a video
Or, you could do this programmatically with presentViewController:animated:completion.
Now to get back to the map from the list, I believe that must be done programatically. Create a method that calls dismissViewControllerAnimated:completion: and make your list View Controller's UIBarButtonItem titled "Map" trigger it.
After reading your comments, I am wondering... if the structure of your app is logically a tabbed app structure (as indeed you refer to it as a 'tab bar application'), shouldn't you consider using the UITabViewController instead of a NavigationController? That is what it is designed to do, after all.
If you do use a TabViewController you should reconsider your desire for flip animation, as that doesn't really make UI-sense for tabs. If you can dispense with the flip animation, TabViewController could be a good way to go and you should at least experiment with that before dismissing the idea. It is also designed to grow... you can incorporate any number of tabs in a tab bar. Check out the apple docs (with pictures!)
You will notice that tabs are at the foot of the screen, whereas your 'tab' navController buttons are in a navbar at the top of the screen. This also helps as your app grows, as it is straightforward - from a UI design point of view and programmatically - to incorporate navControllers as navigation tools within individual tabs. For example, if your map/list flip routine does indeed make sense for this part of you app, you can keep this as a single tab (in it's own navigationController) and add other tabs for other parts of the app...
update
From your comment, you are saying that you are interested in the navController-inside-tabBarController setup. In this case here are some ways to get flip transitions AND no back button..
(1) modal presentation
The easiest way to get what you want is to set up one of your viewControllers (say the map view) to present the other one (the list view) modally.
If in the storyboard:
embed your mapViewController in a navController with a navbar button for navigation to the listView as in your picture
add your listViewController to the storyboard and embed it in it's own navContoller (not the mapViewController's navController). Drag a barButtonItem to this navController and wire it up to an IBAction in listViewController
CTRL-drag from mapViewController's 'list' button to the listViewController to create a segue. Select the segue and in the attributes inspector set the segue type to 'modal', with transition 'flips horizontal' and 'animated' checked. Give it a name in case you want to refer to it in code.
in the listViewController's IBAction add this:
[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
That should achieve your result. You can use the completion block to send information back from the list view to the map view, and/or set the map view as the listView's delegate.
If you are not using the storyboard check this apple guide
Presenting View Controllers from Other View Controllers
especially "Presenting a View Controller and Choosing a Transition Style".
There is one catch with this approach - when the presented view flips onto the screen, the entire previous view, including the tab bar, is flipped out of the way. The idea is that this is a modal view which the user is required to dismiss before doing anything else in the app.
(2) push/pop in a single navController If this does not suit your intent, you can navigate using a single NavigationController with push and popping of views, and you can hide the back button ... but you really would need to keep the back button functionality as you do want to go back to the mapView, not on to a new map view.
To hide the back button try:
self.navigationItem.hidesBackButton = YES
in the uppermost viewControllers' viewDidLoad
Then you can add a barButtonItem in the xib/storyboard, with this kind of IBAction:
[self popViewControllerAnimated:NO]
or
[self popToRootViewControllerAnimated:NO]
You would have to construct the flip animation in code as it is not supported as a built-in with UINavigationController (best left as an exercise for the reader!)
(3) swapping views in a single viewController As ghettopia has suggested, you could use a single viewController inside a navController (or with a manually place navBar) and swap two views around using the UIView class methods
transitionFromView:toView:duration:options:animations:completion
transitionWithView:duration:options:animations:completion.
This could be a good simplifying solution as your list and map are essentially two views of the same data model.