删除Storyboard以使用XIB文件

时间:2015-01-23 20:02:48

标签: ios objective-c iphone xcode xib

我是iOS开发的新手,可以使用一些帮助。

对于我被要求编写的应用程序,我被要求仅使用XIB文件而不是故事板进行编码。这有助于更好地理解并遵循我参与的另一个项目的编码惯例。

所以,我在这个网站/ youtube / google上遵循了各种建议,并继续遇到同样的问题。

以下是我采取的步骤。

  • 删除故事板和默认视图控制器文件
  • 删除info.plist中的关系
  • 创建了一个新类,在流程中创建了XIB文件
  • 将主界面设置为新的XIB文件(在常规设置中)
  • 将viewController属性添加到AppDeligate.h
  • 将以下代码添加到AppDeligate.m

    - (BOOL)application:(UIApplication *)application     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.viewController = [[MainViewController alloc]      initWithNibName:@"PhotoViewController_ipad" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;}
    

我一直遇到的问题是在模拟器中运行时,它在启动时崩溃,并且我从“主要”中的一行反馈出来的错误。文件。错误是“线程1 SIGART'。

经过研究,我发现这可能与XIB文件和类文件之间的关系有关。因为这是为我创造的,这是正确的,尽管如此,我已经确定自己与班级有关。并且XIB的文件所有者与视图

相关

对于详细描述感到抱歉。长话短说。我只是想开始,并在没有故事板的情况下创建我的应用程序,只使用XIB文件

谢谢

1 个答案:

答案 0 :(得分:0)

我不得不这样做几次。您需要确保将AppDelegate添加到用于替换故事板的MainWindow.xib文件中。确保正确连接所有代理和窗口,以便在启动时找到合适的插座。

的MainWindow.xib

  • AppDelegate已添加(已连接到Window和Delegate)
  • 添加了窗口(并连接到AppDel中的窗口)
  • 文件所有者(连接到代理人)

的Info.plist

  • 主nib文件基本名称(设置为MainWindow.xib)

我基本上采用了一个较旧的项目,并确保连接正确,我的MainWindow看起来正确。如果你还没有为你的AppDelegate添加UIWindow,你也需要这样做。

enter image description here

如果您有关于崩溃的信息,我们可以帮助您进一步。