Ios 如何从AppDelegate启动视图控件?

Ios 如何从AppDelegate启动视图控件?,ios,cocoa-touch,uiviewcontroller,storyboard,Ios,Cocoa Touch,Uiviewcontroller,Storyboard,信息 我正在使用故事板添加视图。在我的故事板中,我有一个视图控制器和一个选项卡栏控制器 self.window.rootViewController = TabBarController; 我试图完成的是检查用户是否是第一次使用我的程序,如果是,它将显示初始视图控制器,而不是显示选项卡栏控制器 self.window.rootViewController = TabBarController; 以下是我的代码,其中包含[self-presentViewController..]中AppDel

信息

我正在使用故事板添加视图。在我的故事板中,我有一个视图控制器和一个选项卡栏控制器

self.window.rootViewController = TabBarController;
我试图完成的是检查用户是否是第一次使用我的程序,如果是,它将显示初始视图控制器,而不是显示选项卡栏控制器

self.window.rootViewController = TabBarController;
以下是我的代码,其中包含[self-presentViewController..]中AppDelegate.m中的错误

我的选项卡栏控制器的情节提要ID为“TabBarController”

请注意,ViewController.h&ViewController.m未被触及

代码

GlobalHeader.h

#ifndef dirt_GlobalHeader_h
#define dirt_GlobalHeader_h

BOOL RegisterCheck;

#endif
#import <UIKit/UIKit.h>
#import "GlobalHeader.h"
#import "ViewController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end
AppDelegate.h

#ifndef dirt_GlobalHeader_h
#define dirt_GlobalHeader_h

BOOL RegisterCheck;

#endif
#import <UIKit/UIKit.h>
#import "GlobalHeader.h"
#import "ViewController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end
我感谢任何人对我的问题作出的贡献


我还想说,与此XCODE相比,Visual Studio IDE要容易得多(我不熟悉)。

我认为,这不是显示选项卡栏控制器

[self presentViewController:TabBarController animated:YES completion:nil];
您应该将其设置为根视图控制器(因为您永远不会返回到初始视图控制器)


更好的方法是在这两种情况下都加载tabbarcontroller,检查用户是否在tabbarcontroller的第一个视图控制器中首次运行应用程序,然后从内部显示viewcontroller,您的问题的解决方案可能最好通过默认初始
viewController
viewDidLoad
方法来处理,特别是如果您打算在显示1-time后返回此方法,第一次场景。如果用户以前没有使用过该程序,那么初始视图控制器将是注册页面,那么代码是否不应该在AppDelegate中?您声明要向第一次用户显示选项卡栏控制器,但您的代码正试图向现有用户显示它。你能澄清哪一个是正确的吗?哦,我的坏蒂莫西·穆斯,让我澄清一下(我没有注意到我的打字错误)。我希望选项卡栏控制器显示给现有用户,视图控制器仅显示给新用户(因此代码);但是,通过输入第二段代码来替换出现错误的代码段(显示选项卡栏控制器),它似乎可以在构建和调试时正常工作,没有任何警告和错误。我唯一的问题是;通过将此代码输入AppDelegate,此代码的正确性是否可以接受?或者将其放入AppDelete的想法完全不正确,还有更好的方法吗?我认为更好的方法是将tab bar控制器设置为故事板中的初始控制器,然后以模式向首次用户显示注册表。注册后,您自然会通过取消注册表单返回到选项卡栏控制器。您现在的操作方式不清楚如何回到选项卡栏控制器?您可能需要在选项卡栏控制器的
viewDidLoad
视图中显示模式表单(不确定是哪个)。在应用程序代理中执行此操作可能为时过早。如果显示错误,可能会说得更多。代码段的错误[self-presentViewController:TabBarController animated:YES completion:nil];“AppDelegate”的@interface声明选择器“presentViewController:animated:completion:”但是,我完全同意如何将选项卡栏控制器设置为初始控制器。