gpt4 book ai didi

ios - 删除 Storyboard并使用 .xib 启动应用程序

转载 作者:可可西里 更新时间:2023-11-01 03:39:19 25 4
gpt4 key购买 nike

我已尝试按照此 Question 上的说明进行操作.但我一定没有做正确的事情,因为在我进入 ViewController 方法之前我仍然收到 SIGABRT。

步骤如下:

  1. 复制 Storyboard View 中的所有项目并粘贴到新的 xib View 中。
  2. 将 .h 和 .m View Controller 文件的所有内容复制到 xib 的新文件中。
  3. 将主 nib 文件基本名称更改为 info.plist 文件中的新 xib 名称。
  4. 尝试更改所有者,但我不知道这样做是否正确。
  5. 按如下方式编辑 appdelegate didFinishLaunchingWithOptions 文件:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

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

    // Override point for customization after application launch.

    TestViewController *test = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:test];
    self.window.rootViewController = nav;

    [self.window makeKeyAndVisible];

    return YES;
    }
  6. 我什至尝试从一个空项目开始,就像建议的最后一篇帖子一样,但在我尝试运行时仍然收到 SIGABRT。

Apple 是否无法删除 Storyboard?我正在创建一个 SDK。我不要 Storyboard。但我确实需要一个可旋转的 xib。

帮忙吗?

最佳答案

您将要创建一个空应用程序,然后按 cmd + n 并选择 coca touch > objective-c class .将类命名为 RootViewController 并单独保留子类 (UIViewController),然后检查 With XIB for user interface

完成后,进入 AppDelegate.m 文件并在返回上方的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 下添加以下代码: 是的

self.RootViewController = [[RootViewController alloc] init];
self.navController = [[UINavigationController alloc] initWithRootViewController:self.RootViewController];
self.navController.navigationBarHidden = YES;
[self.window addSubview:self.navController.view];

所以,它现在应该是这样的:

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

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
self.RootViewController = [[RootViewController alloc] init];
self.navController = [[UINavigationController alloc] initWithRootViewController:self.RootViewController];
self.navController.navigationBarHidden = YES;
[self.window addSubview:self.navController.view];
return YES;
}

然后,在#import "AppDelegate.h" 下方添加#import "RootViewController.h"。完成之后,转到 AppDelegate.h 文件,并在 @interface 上方添加 @class RootViewController;。然后,在@interface AppDelegate下添加如下代码:

@property (strong, nonatomic) RootViewController *RootViewController;
@property (strong, nonatomic) UINavigationController *navController;

所以您的整个 AppDelegate.h 现在应该如下所示:

#import <UIKit/UIKit.h>

@class RootViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>


@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) RootViewController *RootViewController;
@property (strong, nonatomic) UINavigationController *navController;

@end

现在您已经完成了所有这些,您应该能够像通常编写 xib 文件一样开始编写您的应用程序!祝你好运!

关于ios - 删除 Storyboard并使用 .xib 启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19529086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com