Ios 正确的方法是什么?

Ios 正确的方法是什么?,ios,objective-c,xcode,storyboard,boolean,Ios,Objective C,Xcode,Storyboard,Boolean,我的AppDelegate中有此布尔值。m: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; UIStoryboard *storyb

我的AppDelegate中有此布尔值。m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

        self.window.rootViewController = viewController;
        [self.window makeKeyAndVisible];

        return YES;
    }
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项
{
self.window=[[UIWindow alloc]initWithFrame:UIScreen.mainScreen.bounds];
UIStoryboard*情节提要=[UIStoryboard情节提要,名称:@“MainstryBoard”捆绑包:nil];
UIViewController*viewController=//在此处确定初始视图控制器,并使用[storyboard InstanceEviewController WithiIdentifier:]对其进行实例化;
self.window.rootViewController=viewController;
[self.window makeKeyAndVisible];
返回YES;
}
我在*情节提要上遇到一个错误,但我主要尝试的是在与主视图控制器不同的视图控制器中初始化应用程序。我有所有带有ID的视图控制器(比如我想启动的一个名为“Home”)。如果说我的ViewController ID在家,我该如何正确地编写此bool

m:

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}
#导入
#导入“AppDelegate.h”
int main(int argc,char*argv[]){
@自动释放池{
返回UIApplicationMain(argc、argv、nil、NSStringFromClass([AppDelegate类]);
}
}

我得到的零是每当我试图从联系人列表页面返回到原始主页时,它就会崩溃并突出显示零行。这个和上面的代表布尔都给了我一些问题。非常感谢您的任何澄清。

请在AppDelegate.m中使用此选项

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];



    HomeController *viewController = // initialise it 

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

或者,在故事板中,只需将指针指向要作为根视图控制器的视图控制器。

堆栈跟踪说明了问题:

  • 由于未捕获异常“NSInvalidArgumentException”而终止应用程序,原因:“找不到情节提要” 捆绑包NSBundle(已加载)中名为“主存储板”*

你的故事板不是所谓的“主情节板”

我这样做了,它期望viewController由于某种原因被命名为UIViewController,并给出了错误。我也将它指向根视图,但由于某些原因仍然给我错误。但是我的main.m给了我真正的问题,如果我启动我的应用程序,它会因为返回UIApplicationMain而崩溃(argc,argv,nil,NSStringFromClass([AppDelegate class]);你有跟踪记录吗?每个崩溃都有解决它所需的信息。是的,我可以发布更新@您是否有名为:MainStoryboard.storyboard的文件?停止重新发布问题。编辑你以前的帖子来澄清或添加细节。我不认为你理解在某个时候他们停止回复,我被难住了,所以你会理解我为什么要转载。如果你不相信我,去看另一个帖子@Sjors名为MainStoryboard.storyboard的文件是什么意思?我唯一拥有的情节提要名称是Main.storyboard。这正是我想说的,包含所有视图控制器的整个情节提要称为Main.storyboard,但我希望应用程序启动的是一个名为“Home”的视图控制器。我不知道如何修复它来做到这一点,我还将更新一个链接,指向以前关于堆栈溢出的答案,其中有人有类似的问题。那么主视图控制器在Main.storyboard中?首先,在UIStoryboard storyboard with name中,您必须只传入“Main”作为故事板名称。接下来,您希望通过调用storyboard对象上的InstanceEviewController WithiIdentifier从storyboard获取主VC。请注意,主视图控制器的标识符必须在视图控制器的标识检查器中设置。设置情节提要ID和恢复ID,可以与情节提要ID相同。我已经设置了主控制器的情节提要ID和恢复ID,您在UIStoryboard storyboard with Name中所说的是什么意思?你是说这条线吗?UIStoryboard*情节提要=[UIStoryboard情节提要,名称:@“MainstryBoard”捆绑包:nil];我将“*情节提要”更改为主要内容还是将“@”主要内容提要“”更改为主要内容?我之所以尝试将其设置为主页,是因为我想添加一个名为“联系人”的按钮或条形按钮项,在这里有人可以点击访问他们的联系人,但我甚至无法从主页获取联系人的根视图,这是其中的一部分吗?我的意思是,如果您的故事板文件是“Main.storyboard”,传递给UIStoryboard Storyboard with name的名称只是“Main”,没有扩展名。我不知道你说的最后一句话是什么意思。哦,我用“Main”替换“storyboardWithName”?在最后一句话中,我有一个名为Home的导航控制器,它与我的联系人列表视图控制器相连,在Home按钮上,我创建了一个名为“Contacts”的条形按钮项,它将把它带到联系人列表中,但当我连接它时,没有根插座选项。相反,它说推送期权在括号中贬值了,声称这是一个非适应性动作序列。我不知道如何解决这个问题,但如果你能继续帮助我,我会非常感激,因为我在这里遇到了一个漏洞