ios - 在没有 Storyboard的情况下启动 ios 项目

标签 ios objective-c xib

我在使用 xibs 而不是 Storyboard启动 iOS 应用程序时遇到了一些麻烦。问题是我得到一个黑屏并且没有调用第一个 View Controller (向 viewDidLoad 方法添加了断点)。

在应用程序委托(delegate) header 中我声明了这一点:

@property (strong, nonatomic) UIWindow window;
@property (strong, nonatomic) ViewController *viewController;

didFinishLaunchingWithOptions 方法中我有这个实现:

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
navController.navigationBarHidden = YES;

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

查看一些论坛我发现我应该分配窗口所以我将其添加为函数的第一行

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

问题是,当我这样做时,应用程序在从 didFinishLaunchingWithOptions 方法返回后崩溃(没有任何痕迹的 SIGABRT)。

我还尝试使 navController 成为一个属性,并实例化一个默认的 UIViewController 类来初始化相同的 xib

我做错了什么?

感谢和问候

最佳答案

希望对你有帮助:

删除 View Controller 和 Storyboard文件以及新的 viewController.h、viewController.h.m、viewController.xib 文件。

 #import "AppDelegate.h"

 @interface AppDelegate ()

 @end

 @implementation AppDelegate
 @synthesize viewCOntrollerobj;

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     self.viewCOntrollerobj = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
     UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewCOntrollerobj];
     //navController.navigationBarHidden = YES;

     self.window.rootViewController = navController;
     [self.window makeKeyAndVisible];
     return YES;

}  

enter image description here

关于ios - 在没有 Storyboard的情况下启动 ios 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804006/

相关文章:

android - 我可以构建一个在所有手机上都兼容的 Web 应用程序吗?

javascript - iOS 设备上 HTML5 Canvas 中 Javascript 的 setTimeout 问题

ios - 使用 ReactiveCocoa 禁用 UIBarButtonItem

iphone - 文件所有者+第一响应者

macos - 从 "NIBArchive".nib 文件中提取可翻译字符串

ios - 从 SceneKit 检测 SpriteKit 按钮按下覆盖

ios - 核心数据:更新子上下文

objective-c - 如何播放音频先完成音频文件然后再开始播放?

Objective-C "messages"- 正确的阅读方式是什么?

Cocoa:NIB 文件创建的实例的 var 名称是什么?