推视图控制器与参数使用ios5和故事板

问题描述:

我正在开发iPad应用程序使用sdk 5和故事板从一个已经工作的iPhone应用程序(用separete xibs开发)。我了解故事板的工作方式,但我想用参数推送视图控制器。按钮调用logIn2行动如:推视图控制器与参数使用ios5和故事板

- (IBAction)logIn2: (NSString *)strUser: (NSString *)strPass 
{ 
    userViewController *UserViewController = [[userViewController alloc] initWithNibName:@"userViewController" bundle:nil stringOne:strUser stringTwo:strPass]; 
    //UserViewController.hidesBottomBarWhenPushed = YES; 
    [[self navController] pushViewController:UserViewController animated:YES]; 
} 

这是工作正常,但与SDK 5返回一个错误的第一行。如何用参数推送视图?谢谢。

+1

你得到什么错误信息? – 2011-12-26 14:09:25

+0

错误:实例消息的接收方类型'userViewController'没有用选择器'initWithNibName:bundle:stringOne:stringTwo:'声明一个方法[4] – Jaume 2011-12-26 14:11:50

如果您在说要将您的应用程序转换为使用Storyboard和Segues,那么您需要制作Segue来推送UserViewController。在UserViewController中放置一些属性来存储参数。然后重写prepareForSegue并在其中设置属性。看到这个答案的更多细节:

Properly accessing a segue's destination view controller to assign protocol delegates

从错误消息中很明显,您的UserViewController中没有声明initWithNibName:bundle:stringOne:stringTwo:方法。你的UserViewController的外观如何?

+0

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil stringOne:(NSString *)aStringOne stringTwo:(NSString *)aStringTwo { – Jaume 2011-12-26 14:29:36

您是否在.h文件中声明了自定义初始值设定项?否则,只有标准的initWithNibName初始值设定项会被找到,而不是你指定的 - 因此是错误信息。

+0

{}声明它在标头中是不够的;还必须在.m中实现它。 – 2011-12-26 18:23:56