我正在尝试使用UINavigationController,但不确定如何。到目前为止(大约一年),我一直在使用presentModalViewController和dismissModalViewController来呈现/关闭视图控制器。

所以,这就是我所做的。我的主视图控制器(在启动时显示的第一个)称为MainViewController,它扩展了UIViewController。

所以我在我的应用程序委托中做了这个启动功能:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    MainViewController *controller = [[MainViewController alloc] init];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
    [self.window addSubview:navigationController.view];
    [self.window makeKeyAndVisible];

    return YES;
}


在我的MainViewController的viewDidLoad方法中:

- (void)viewDidLoad {

        [super viewDidLoad];

        self.title = @"Title";
        self.navigationController.navigationBar.tintColor = [Constants barColor];

            ....more code...
    }


但是,在我的MainViewController中,我想展示另一个名为SecondViewController的视图控制器,它需要一个带有后退箭头按钮的UINavigationBar。那么,是否要让SecondViewController扩展UIViewController并通过在viewDidLoad方法中设置title和backButton来做同样的事情?而我该如何呈现呢?我应该怎么做才能做到这一点?

最佳答案

您需要设置一个根视图控制器,最简单的方法是从Apple模板开始。

这是魔术发生的地方:

UIViewController *controller = [[UIViewController alloc] initWithNibName:@"MyNib" bundle:nil];
[self.navigationController pushViewController:controller animated:YES];
[controller release];


导航控制器会为您完成所有工作(后退按钮,标题,动画)-它会保持跟踪!



我的工作流程是这样的:

在viewDidLoad中设置MutableArray,向其中添加控制器,例如:

NSMutableArray *array = [[NSMutableArray alloc] init];
MyCustomViewController *customView = [[MyCustomViewController alloc] initWithNibName:@"nib" bundle:@"nil"];
customView.title = @"Second Level";
[array addObject:customView];
self.controllers = array;


然后在您的代表中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger row = [indexPath row];
    UIViewController *childControllerToBe = [controllers objectAtIndex:row];
    [self.navigationController pushViewController:childControllerToBe animated:YES];
}


通过阅读像Beginning iPhone Development这样的新手入门书籍,您可以学到更多的知识。

另外,apple docs总是很好:)

10-04 22:24
查看更多