views:

37

answers:

1

I have an iPhone app that shows a simple view (View 1) that has a button. When the user presses this button, View 2 slides into view using the call

[self presentModalViewController:self.view2 animated:YES];

I want View 2 to support a navigation controller. All the code I find tells you how to set up a Navigation Controller App, but I can't figure out how to set this up using IB.

What I have done is to create a plain view2.xib file. I set the file's owner class to view2. I add a navigation Controller to the XIB. I create an IBOutlet called view2Nav in view2.h for a UINavigationController. I link view2Nav to the NavigationController in view2.xib.

I then create a view3 class with view3.xib. I set the RootViewController in view2.xib to be of class view3 and set its NIB name to view3.

Then I go back and run the program. When I press my button on view 1, the app crashes as it tries to create view 2.

I know I must be missing a setting or something.

A: 
MySecondViewController *secondVC = [[MySecondViewController alloc] initWithNibName:@"MySecondViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:secondVC];
[self presentModalViewController:navigationController animated:YES];
[secondVC release];
[navigationController release];

Forget about IB. Do anything in code :) It is faster and you will exactly know why and how it works.

I'm not sure whether you can pass a self.view2 to presentModalViewController. If self.view2 is a subclass of UIViewController, you can. If it is a simple UIView, you shouldn't. If fact you can't at all.

beefon
Thanks, that did the trick.
Ferdinand Rios