Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 以编程方式显示情节提要视图_Iphone_Ios_Uistoryboard - Fatal编程技术网

Iphone 以编程方式显示情节提要视图

Iphone 以编程方式显示情节提要视图,iphone,ios,uistoryboard,Iphone,Ios,Uistoryboard,我使用的故事板,我面临的错误如下所示,我的代码已成功执行,但他们是没有页面显示或在模拟器中的行动,只有在启动图像黑屏显示 ClsMainPageAppDelegate.h #import <UIKit/UIKit.h> @interface ClsMainPageAppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @end 错

我使用的故事板,我面临的错误如下所示,我的代码已成功执行,但他们是没有页面显示或在模拟器中的行动,只有在启动图像黑屏显示

ClsMainPageAppDelegate.h

#import <UIKit/UIKit.h>

@interface ClsMainPageAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
错误

当我没有选择storybroad中的入口点是初始视图控制器时,我会遇到这个错误

2013-07-17 19:38:12.749 BeInformed[1011:c07] Failed to instantiate the default view
controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry
point is not set?
2013-07-17 19:38:16.127 BeInformed[1011:c07] Message Hello : 0
2013-07-17 19:38:18.333 BeInformed[1011:c07] Launched Terms and Conditions Page
错误

在storybroad中选择入口点时遇到的错误是初始视图控制器(termsandConditionControl)


顺便说一句,我知道你已经解决了你的问题,但我只是想建议另一个流程。或者,您可以始终从标准初始场景开始(您可以在应用程序代理中不使用任何代码),但其
视图将显示
以确定您是否需要条款和条件(T&C),如果需要,则以模式呈现单独的场景(动画或非动画,如您所见)。您可以让用户确认T&C,然后取消条款和条件场景,您将回到标准的“初始”场景

如果这样做,您的T&C将被取消,您不必通过编程方式更改
rootViewController
,导航控制器的顶级场景始终保持为标准的“初始”场景,因此
popToRootViewController
之类的东西可以轻松工作,您不必隐藏t&C页面上的导航栏等。它还可以为用户提供一个再次查看t&C的选项(例如,如果您有合适的显示位置,则隐藏在“设置”或“关于”场景中)

如果您想知道如何以编程方式转到T&C,您可以定义一个从初始场景到T&C场景的序列:

然后选择该序列并为其指定一个标识符:

现在,您的初始场景的
视图将出现
,例如:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    BOOL hasAcceptedTermsAndConditions = ...;

    if (!hasAcceptedTermsAndConditions)
    {
        [self performSegueWithIdentifier:@"TermsAndConditions" sender:self];
    }
}

我很高兴您解决了问题,但我只是想建议一种替代流程。

好的,可能的原因是,您可能遗漏了在“标识检查器”中将类/控制器名称指定给情节提要中的控制器。接下来,在plist文件中检查是否有具有故事板正确名称的故事板条目


希望这能奏效。:)

最终解决了我的问题,我使用了以下代码

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ClsTermsandConditionViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"termsandConditionControl"];
    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:ivc];
    self.window.rootViewController=nil;
    self.window.rootViewController = navigationController;
    [navigationController setNavigationBarHidden:YES];
    [self.window makeKeyAndVisible];

你的故事板是如何设置的?导航控制器是初始控制器吗?它的根视图控制器是什么?您可以执行一些错误检查,以查看脚本和视图是否成功返回。另外,“(UINavigationController*)self.window.rootViewController”看起来可疑,应该进行测试。我不明白我是如何设置故事板的,导航控制器是什么?请告诉我如何知道根视图控制器?解释一下,请解决我的问题。
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    BOOL hasAcceptedTermsAndConditions = ...;

    if (!hasAcceptedTermsAndConditions)
    {
        [self performSegueWithIdentifier:@"TermsAndConditions" sender:self];
    }
}
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ClsTermsandConditionViewController *ivc = [storyboard instantiateViewControllerWithIdentifier:@"termsandConditionControl"];
    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:ivc];
    self.window.rootViewController=nil;
    self.window.rootViewController = navigationController;
    [navigationController setNavigationBarHidden:YES];
    [self.window makeKeyAndVisible];