gpt4 book ai didi

ios - iOS 应用程序是否需要 View Controller ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:26:07 25 4
gpt4 key购买 nike

我一直在研究 iOS 应用程序结构,并且几乎了解了 MVC 范例,包括委托(delegate)、 View 和 Controller 。然后我在网上看到了一个例子,它只包含一个 AppDelegate 文件,没有 View 、 View Controller 或 nib 文件,它可以工作:

    @implementation AppDelegate

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

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

CGRect bounds = self.window.bounds;
view = [[UIView alloc] initWithFrame: bounds];
[view setBackgroundColor: [UIColor yellowColor]];
[self.window addSubview: view];

CGRect labelFrame = CGRectMake(30, 30, 100, 30);
label = [[UILabel alloc] initWithFrame: labelFrame];
[label setText: @"My Label"];
[label setTextAlignment: NSTextAlignmentCenter];
[label setTextColor: [UIColor orangeColor]];
[view addSubview: label];

CGRect buttonFrame = CGRectMake(vCentre - 50, hCentre - 20, 100, 30);
button = [[UIButton alloc] initWithFrame: buttonFrame];
[button setTitle: @"My Button" forState: UIControlStateNormal];
[[button titleLabel] setTextAlignment: NSTextAlignmentCenter];
[button setTitleColor: [UIColor redColor] forState: UIControlStateNormal];
[view addSubview: button];

[button addTarget:self action:@selector(buttonClicked:) forControlEvents: UIControlEventTouchDown];

[self.window makeKeyAndVisible];

return YES;
}

在没有设置任何 View Controller 或 Root View Controller 的情况下如何工作?这是否意味着实际上不需要 View Controller ?

最佳答案

您可以在 Interface Builder 中设计应用程序并连接所有 socket 。或者您可以在代码中设计窗口、标签等。

这将创建一个充满屏幕的窗口:

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

然后向其中添加一个 View :

[self.window addSubview: view];

还有一个标签:

[view addSubview: label];

最后,显示窗口:

[self.window makeKeyAndVisible];

关于ios - iOS 应用程序是否需要 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217842/

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