Adding UINavigationController to xCode Tab Bar Application Template - ios4

How to add UINavigationController to xCode Tab Bar Application Delegate?
My structure is based on xCode Tab Bar Application Delegate, with 2 tabs, First View & Second View respectively. For First View, I added a UITableView. I just want to make use of UINavigationController function [self.navigationController pushViewController:animated:] to push a subview and allow a navigation bar to be shown in subview. After pushing the subview, the tab bar must still be there.
Sounds simple, but I have no idea how to achieve it. Please help.

I started with a Window-based template instead and did this to achieve the same thing.
I created my NavigationControllers and TabBarController in my app delegate manually.
In your:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Add this:
//Seeting up the Navigation controllers and pushing our TableView controllers.
UINavigationController *unvc1 = [[UINavigationController alloc] init];
UINavigationController *unvc2 = [[UINavigationController alloc] init];
[unvc1 pushViewController:someViewController1 animated:NO];
[unvc2 pushViewController:someViewController2 animated:NO];
[someViewController1 release];[someViewController2 release];//Releasing our TableView controllers.
//Setting up the TabBar controller and pushing our Navigation controllers.
UITabBarController *tbvc = [[UITabBarController alloc] init];
tbvc.viewControllers = [NSArray arrayWithObjects:unvc1, unvc2, nil];
[unvc1 release];[unvc2 release]; //releasing our Navigation controllers.
I hope this helps.

I did this using presentModalViewController:animated . I added tabBar Controller in the modalView. In the method didSelectRowAtIndexPath use this presentModalViewController:animated .I might not be perfect but I had the same problem, but now my app works as I need.

Related

iOS 6 rotation with an MPMoviePlayerViewController from UIWebView

I have inherited an iOS app that has not been maintained since iOS 3 era. The app relies on a web view to display some data. One of the feature is displaying the video in a full screen mode. What the client needs is a video reacting to the device rotation but all other views should be only portrait.
I've managed to figure out all the window.rootViewController and shouldAutorotate changes. I get the app to rotate only when I want. The problem I am facing is the video rotation 'too much'.
If I rotate the device left, the video rotates by 180 degrees (it goes into upside down orientation). Rotating back to the right causes the view width to shrink by half but the orientation is correct. I am not quite sure where the problem could be.
Anyone had similar issues?
I did have the same problem by inheriting a project. In my case, the application is navigation based, and the problem was that the main UINavigationController's view was being added as a subview of an UIViewController's view.
So, initially I had this code on my application:didFinishLaunchingWithOptions::
self.viewController = [[MyViewController alloc] init];
self.window.rootViewController = self.viewController;
and this on MyViewController's viewDidLoad:
UINavigationController *navController = [[UINavigationController alloc] init];
[self.view addSubview:navController.view];
Then I simply changed my application:didFinishLaunchingWithOptions: to this:
self.viewController = [[MyViewController alloc] init];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = self.navigationController;
I hope this helps you!

How to change viewcontroller on buttonTapped with iCarousel?

I have a viewcontroller with an iCarousel.
When I tap on an item that I know how to display an UIalert but, now I want to change view controller to go on an other already created viewcontroller
I'm guessing you need something like this:
MyOtherViewControllersName *vc =[[MyOtherViewControllersName alloc]initWithNibName:#"MyOtherViewControllersName" bundle:nil];
[self presentModalViewController:vc animated:YES];
Just put it in the same method where you're generating the alert message.

To Use NavigationViewController or NOT

I am creating an application which displays map using MKMapView control. I have a button on the map that takes me to different view (information view) using the following code:
InfoViewController *infoViewController = [[InfoViewController alloc] initWithJogInfo:jogInfo];
self.view = infoViewController.view;
Now after going to the information view I want to go back again to the main view which displays the map without having to loose anything. Is NagivationControlller my best option to use in this scenario?
Try this,
InfoViewController *infoViewController = [[InfoViewController alloc] initWithJogInfo:jogInfo];
[self.navigationController pushViewController:infoViewController animated:YES];
[infoViewController release];
once you push viewController back button is available to come back to rootViewController.

has Presenting modal view controller in iOS 4.3 for iPad changed?

Has Presenting modal view controller in iOS 4.3 for iPad changed?
I created a new view application, then created a new UIViewControllerSubclass called "One", I then changed the background of One.xib to black, in the applications view controller's viewDidLoad method I placed in the code below. I ran the project in the simulator and receive the log that the "Code has run..."
The project can be downloaded from here....Download Source Code of Project
#import "One.h"
- (void)viewDidLoad
{
One *newItemViewController = [[One alloc] initWithNibName:#"One" bundle:nil];
newItemViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:newItemViewController animated:YES];
[newItemViewController release];
NSLog(#"Code has run...");
}
Try putting your this in the viewDidAppear method instead of viewDidLoad.

MPMoviePlayerController view vanishes on Presenting a modal View Controller

My view hierarchy containing the view from a MPMoviePlayerController vanishes the moment I present a Modal View Controller.
Instead of displaying a view with a movie and controls it depicts an earlier subview beneath it. I checked the subview array of the main view controller and all views including the movie player view exits.
Forcibly adding the movie player view after the modal view controller is done does not bring movie player view back on top.
Would welcome any suggestions/thoughts ?
your problem isn't specific to the MPMoviePlayerController. any time you present a modal view controller, all of the views from other view controllers beneath it disappear.
try it out with just a couple of simple view controllers.
in the app delegate, set your window background color to red:
[self.window setBackgroundColor:[UIColor redColor]];
then add a view controller with a green background:
UIViewController *vc = [[UIViewController alloc] init];
[[vc view] setBackgroundColor:[UIColor greenColor]];
self.window.rootViewController = vc;
finally, create another view controller with a transparent background, and present it modally:
UIViewController *vc2 = [[UIViewController alloc] init];
[[vc2 view] setBackgroundColor:[UIColor clearColor]];
[vc presentModalViewController:vc2 animated:YES];
you'd expect to see the green VC through the clear VC, but instead you see red (ie, you see the window).

Resources