挣扎着导航控制器的基础知识

时间:2011-07-26 19:22:09

标签: ios uinavigationcontroller viewcontroller

我一直在试着让一个基本的NavigationController工作,让我可以轻松地在视图之间来回切换。我觉得我在取得进步,但我显然错过了一些关键的东西。我现在有我的模板应用程序推送视图,但只能通过添加指向目标NIB的initWithNibName。尝试向这些辅助视图添加任何功能会导致应用程序因SIGABRT错误而崩溃。我无法想象这是对的..如果我只是简单的NIB,那么开关工作正常。我添加到secondViewcontroller的唯一的东西是一个标签和一个按钮,用一些垃圾文本填充标签。然而,当我按下开关按钮移动推动这个视图我得到了SIGABRT。我希望能够在不同的视图控制器中放置功能。我觉得我很近,但是这是如此恶化。任何人都可以指出我哪里出错了?

#import "mainViewController.h"


@implementation mainViewController

-(void)switchView {
    UIViewController *secondViewController =   [[UIViewController alloc] initWithNibName:@"secondViewController" bundle:nil];
    secondViewController.title = @"My First View";
    [self.navigationController pushViewController:secondViewController animated:YES];  
    [secondViewController release];
}

-(void)switchViewTwo {
    UIViewController *thirdViewController =   [[UIViewController alloc]  initWithNibName:@"thirdViewController" bundle:nil];
   thirdViewController.title = @"My second View";
   thirdViewController.view.backgroundColor = [UIColor redColor];
   [self.navigationController pushViewController:thirdViewController animated:YES];
   [thirdViewController release];
}

1 个答案:

答案 0 :(得分:0)

而不是

UIViewController *secondViewController =   [[UIViewController alloc] initWithNibName:@"secondViewController" bundle:nil];

把这个:

MySecondViewController *secondViewController =   [[MySecondViewController alloc] initWithNibName:@"secondViewController" bundle:nil];

我的MySecondViewController应该是UIViewController的名称,还要检查XIB的名称是否真的称为secondViewController。最后:

  • 转到您的XIB
  • 选择文件所有者文件。
  • 在检查器中选择第3个选项卡。
  • 检查班级名称。它应该是MySecondViewController而不是UIViewController