【发布时间】:2012-02-01 00:22:08
【问题描述】:
我有以下代码推送 UIViewController。此代码是在按下UIButton 时执行的目标方法:
-(void)pushNavigationController
{
ParameterListerViewController *plvc = [[ParameterListerViewController alloc] init];
UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:plvc];
self.navigationController.navigationBarHidden = YES;
plvc.numberOfParameters = [[numberOfTrialsField text] intValue];
NSLog(@"about to push the navigation controller");
[self.navigationController pushViewController:nvc animated:YES];
}
在 NSLog 语句之前它会得到,但在那之后,视图控制器永远不会被推送,应用程序只会崩溃。这里是ParameterListerViewController的头文件:
ParameterListerViewController.h
-------------------------------
@interface ParameterListerViewController : UIViewController<UITextFieldDelegate>
{
UIScrollView* scrollView;
}
@property(nonatomic) NSInteger numberOfParameters;
@end
这是包含 UIButton 和相应目标方法的头文件,其中包含用于推送导航控制器的代码。
SettingsViewController.h
------------------------
@interface SettingsViewController : UIViewController <UITextFieldDelegate, UIPickerViewDelegate, UITableViewDelegate, UITableViewDataSource>
{
id <SettingsViewDelegate> delegate;
}
@end
这是一个被推送的类对象的头文件:
@interface ItemViewController : UITableViewController
{
}
@end
有什么建议吗?
【问题讨论】:
-
你为什么要把导航控制器推到另一个上面?
-
试试
self.navigationController pushViewController:plvc animated:YES -
不幸的是,这也崩溃了。我忘了提到我之前尝试过推送
plvc。我创建了一个全新的项目(只是为了确保它不是那些“神秘”错误之一),但它仍然不起作用。我在问题中添加了更多细节。 -
控制台崩溃时有什么内容?
-
如果没有看到您的崩溃日志/控制台输出,将很难为您提供帮助。根据以前的经验,另一个可能的原因是您的主视图未在您的 NIB 文件中正确设置。确保视图出口连接到文件所有者并且文件所有者设置为您的视图控制器类
ParameterListerViewController。如果是这种情况,您应该会在控制台中看到一个错误。
标签: ios ipad ios5 uiviewcontroller uinavigationcontroller