与导航控制器基础知识斗争
Posted
技术标签:
【中文标题】与导航控制器基础知识斗争【英文标题】:Struggling with Navigation Controller basics 【发布时间】:2011-07-26 19:22:09 【问题描述】:我一直在努力让一个基本的 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];
【问题讨论】:
我要做的第一件事是浏览实现文件,并将类名大写,因为类名和实例变量都是小写的,所以编译器无法区分。例如将 secondViewController *secondViewController 更改为 SecondViewController *secondViewController。 请发布整个崩溃日志。我怀疑问题出在按钮本身,而不是视图控制器中的方法。 我同意,发布崩溃日志 【参考方案1】:代替
UIViewController *secondViewController = [[UIViewController alloc] initWithNibName:@"secondViewController" bundle:nil];
把这个:
MySecondViewController *secondViewController = [[MySecondViewController alloc] initWithNibName:@"secondViewController" bundle:nil];
我的MySecondViewController
应该是你的UIViewController
的名字,还要检查XIB 的名字是否真的叫做secondViewController。最后:
MySecondViewController
而不是 UIViewController
。
【讨论】:
以上是关于与导航控制器基础知识斗争的主要内容,如果未能解决你的问题,请参考以下文章