Hidden UITabBarController with 7 tabs - ios

In my project I'm working on with Xamarin.iOS (formerly MonoTouch), I ran into a little problem. I have a UITabBarController which contains 7 tabs (so it uses the "More"-tab). The UITabBarController is hidden to the user, and only serves as an easy way to switch between tabs (with the SelectedIndex property). I have arrow buttons on the bottom of the view that function as previous and next tab buttons.
The problem is that if I hit next after the 4th tab, it won't switch to the 5th view, but to the "More" list instead. Is there a way to subclass UITabBarController and override something so this doesn't happen?
Thanks a lot,
DebboR

I solved the problem using a push-pop navigation structure. I have put custom buttons instead of the back buttons which pop to the first view instead of the previous.
Personally, I think the tab solution (if "More" wouldn't be there) would have been much cleaner and logical than this solution, but it works...
Thanks anyway,
DebboR

Related

What approach should i use when making tab bar application

I'm started to work at new place as iOS programmer. I joined existing project and got an assignment that i don't really know how to approach.
So my problem is this: when you press a button, next window has to have a tab bar with four icons, this means four different navigation stacks. Its not that hard to make, but in main screen i have more then four icons, and if i press any one of them next window always has to have a tab bar with four static icons, like shortcuts or something.
So what should I do? Does anyone had the same situation? I want to start with a good advice to save trouble later on.
You should probably rethink the app design. Tapping an item on the tab bar shouldn't result in a different number of tab bar items, as it leads to an unstable and unpredictable UI.
While not the most efficient in terms of visible content, you could introduce a segmented control (or a similar custom view) on top right under the navigation bar (if there is one), as seen in the Facebook app (though here it is used to perform actions, not changing views).
Your root view controller should be embedded in a navigation controller. Then push a view controller which contains any number of tab bar items not TabBarController. Then you can present each view controller either push or custom.

Making a UITabController the tab of another UITabController

Is it possible to have one UITabController be a tab of another UITabBarController? For example, I have a UITabController with 6 tabs, can I make the the sixth tab lead to a UITabBarController with two tabs?
You mean the 5th tab, since if you try to put 6 tabs in a UITTabBarController, you will wind up with a "More" selection, and then those tabs showing up in the tableview.
I imagine this could be done using either Storyboards with Container Views, or using parent/child view controllers in code. The question is: why would you? You'd then have a tab bar on top of another tab bar. You're pretty much guaranteed rejection by Apple because I don't believe this is allowed by the HIG.
If you need more than 5 buttons worth of tabs, either implement a custom solution, or change your UI/UX to something like a split view controller with master/detail lists - something more scalable of an interface.

nested segues app performance

i want to use a tab bar on top of the view controller not in the bottom. after searching, i found out it's against Apple's UI Interface Guidelines and it should always be at the bottom. However, my app has to have also one at the top. Anyway, i was thinking of using nested segues. For example, if we have three view controllers that each has 3 buttons on top that resemble the tab bar items, and i'm positioned on the first VC (hence, the first button is highlighted). When i press on the second button it gets highlighted and segues to the second VC. Then if i press of the first button, i'll be taken back to the first VC. My question here is if i worked using this paradigm, will the VC's be stacked? will the performance of the app decrease? can i achieve this in a better way in case the answer of the previous questions were negative?
try these projects
MHCustomTabBarController
ICViewPager
JCMSegmentPageController
QMBTabs

Tabbar not showing in ios application

i am making one iOS tabbar application in that i have put 4 different tabs and whenever i click on 1 st tab and load another view after clicking of the first tab. After that when i press back button then tabbar is not displaying .So that i want hint that how can i show that
back the tabbar when we move from one tab from another and yes how i can use consistent the tabbar in whole application can you just guys help me on this i am new to iOS development.
here i am put the screen shot ...
here first screen is this one..
when i tap the video button that are first in the view then another window open
which are as under and see the tabbar is not there...
when in video controller there is tabbar is there but i drag and connect to that then tabbar is disabled
Looking at your screen snapshots, do I correctly assume you're attempting to transition to the "Videos" scene by touching the big "Videos" button in the center of the "Home" scene (rather than touching the tab bar button at the bottom of the screen, which I assume works fine)? If that's the case, you need to have your button tell the view controller's tab bar controller that you want to change the index of the tab bar, and it takes care of it for you. You cannot do the transition using a segue (or at least not without a custom segue, which is even more complicated than the procedure I outline below). If you're changing the view some other way (e.g. using a standard segue or using presentViewController, pushViewController programmatically, etc.), your tab bar can disappear on you.
You later said:
when in video controller there is tabbar is there but i drag and connect to that then tabbar is disabled
Yes, that's true. You cannot use a segue from one of your big buttons to one of the tabs in your tab bar. (Or technically, if you wanted to use a segue, it would be a custom segue which would do something very much like my below code, though perhaps a tad more complicated.) So, rather than using a segue for your big button, you need to write an IBAction (connected to the big Videos button on the Home scene), that tells the tab bar to change its selection:
- (IBAction)clickedVideosButton:(id)sender
{
[self.tabBarController setSelectedIndex:1];
}
A couple of comments:
My answer was predicated on the assumption that your tab bar works as expected when you tap on the buttons of the tab bar, itself. If you tap the buttons at the bottom of the screen, do you transition to your other views correctly and preserve the tab bar? If so, my answer above should solve your issues in getting the big buttons to work. If not, though, then the problem rests elsewhere and you need to show us your code that might account for that (either you're something non-standard in the UITabBarControllerDelegate methods, or your viewDidLoad of the view is doing something nonstandard).
If I understand your user interface design right, you have the tab bar at the bottom as well as the big buttons in the middle, which presumably do the same thing. That is, no offense, a curious user interface design (duplicative buttons, requiring extra tap on a button, etc.). You might want to choose to either use either big buttons (in which you can retire the tab bar, eliminate the IBAction code I've provided above, and just use a nice simple navigation controller and push segues, for example), or just use the tab bar (and lose the home screen, lose the big buttons, etc.).
You also made reference to "press back button", and I don't see any "back" button on any of your screen snapshots. Do I infer that you have a navigation controller and you're doing a pushViewController or push segue somewhere? If you're doing something with back buttons, you might need to clarify your question further.

"Slide" segue between UITabBar views

My iOS 5 app uses storyboarding with a UITabBarController. There are three "tabs" each displaying a view controller which has been linked using a relationship back to the UITabBarController. At the moment each view controller appears when you tap the relevant tab, as expected. However, for a more gracious transition I would like to slide the view controllers on and off screen.
By way of example, if I am currently on Tab 0 and then select Tab 1 the view controller on screen (for Tab 0) should slide off to the left-hand side of the screen, and the new view controller (for Tab 1) should slide on from the right-hand side of the screen.
I have been able to achieve this behaviour using a custom UIView as the tab bar but would like to know whether this is possible with a custom segue in storyboarding, as that would certainly save a lot of coding (and also would keep things a fair bit neater in the project)?
Thanks in advance for any assistance.
I am trying to do the same thing.
Unfortunately I think the relationship segue does not allow any customization as it just connect tab bar and the tab bar items together, and not a transition.
My guess is we have to do the transition ourselves when the view appeared.

Resources