导航控制器以编程方式查看控制器不工作IOS7

Posted

技术标签:

【中文标题】导航控制器以编程方式查看控制器不工作IOS7【英文标题】:Navigation Controller to View Controller Programmatically Not Working IOS7 【发布时间】:2014-03-17 05:08:41 【问题描述】:

嗨,在我的应用程序中,我有注册的导航控制器,如果用户在注册表单中输入无效数据,我正在验证我的注册表单,它不应该移动到下一个视图控制器,并且如果用户提供正确的数据它应该移动到下一个视图控制器,但它不工作。

     - (IBAction)reg:(id)sender 
   if ([self validateEmail:[email text]]== 1 && [self phonevalidate:[phone text]]== 1 && [name.text length] <= 25 && [city.text length] <= 25 ) 
       pollpoliticalViewController *pollVC = [[UIStoryboard storyboardWithName:@"Main.storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"PollPoliticalVCID"];
       [self.navigationController pushViewController:pollVC animated:YES];
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Thanks For The Registration" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
       [alert show];
       [alert release];


    else
       UIAlertView *alert1 = [[UIAlertView alloc]initWithTitle:@"Message" message:@"you entered worng correct" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
       [alert1 show];
       [alert1 release];
    
  

我使用上面的代码以编程方式从导航控制器中导航到视图控制器,但它给出了类似的错误。

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“找不到名为“Main.storyboard”的故事板

但是我的故事板名称是 main.storyboard 我不知道为什么它会出现这样的错误这个。

谢谢。

【问题讨论】:

如果您从中调用此代码的控制器与 pollpoliticalViewController 位于同一故事板中,则使用 self.storyboard 会更容易。无需使用 storyboardWithName:bundle:. 【参考方案1】:

情节提要名称不包含扩展名,请尝试使用Main 而不是Main.storyboard

pollpoliticalViewController *pollVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"PollPoliticalVCID"];

来自官方documentation:

为指定的故事板资源文件创建并返回一个故事板对象。

+(UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil

参数名称情节提要资源文件的名称,不带文件扩展名。如果此参数为 nil,则此方法引发异常。 [...]

【讨论】:

以上是关于导航控制器以编程方式查看控制器不工作IOS7的主要内容,如果未能解决你的问题,请参考以下文章

如何通过以编程方式创建导航控制器 POP 以查看控制器

我以编程方式创建的导航控制器不像示例中那样出现

Swift 以编程方式导航到另一个视图控制器/场景

以编程方式推送时导航栏消失

setNavigationBarHidden 不能以编程方式工作?

以编程方式为第二个 VC 添加导航控制器