gpt4 book ai didi

ios - 如何在 iOS 3.1 中实例化我的 ViewController? (它已经在 iOS 4.2.1 中运行)

转载 作者:行者123 更新时间:2023-11-29 04:41:04 25 4
gpt4 key购买 nike

使用 Xcode 4.2,我的应用程序在 iOS 5.0 模拟器中运行。它在装有 iOS 4.2.1 的 3G iPhone 上运行。它不能在装有 iOS 3.1.3 的 iPod 上运行。

这是我从许多教程中获得的样板代码,但在 iOS 3.1.3 设备上,显示我的 Default.png 后,此行失败:

self.window.rootViewController = self.viewController;

在我的 ykAppDelegate.m 中,“无法识别的选择器发送到实例”:

#import "ykAppDelegate.h"
#import "ykViewController.h"

@implementation ykAppDelegate

@synthesize window;
@synthesize viewController;

#pragma mark -
#pragma mark Application lifecycle

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

// Override point for customization after application launch.

// Set the view controller as the window's root view controller and display.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

return YES;
}

粗略地浏览一下代码,我发现 viewController 显然没有实例化(@synthesize 除外);它刚刚在我的 ykAppDelegate.h 中声明:

#import <UIKit/UIKit.h>

@class ykViewController;

@interface ykAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ykViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet ykViewController *viewController;

@end

我可以做一些小的调整,以便它可以在 iOS 3.1 中运行吗?

最佳答案

在 iOS5 之前的操作系统中,UIWindow 没有名为“rootViewController”的属性。惯用的解决方案是简单地将 View Controller 的 View 作为 subview 添加到应用程序的关键窗口中:

[window addSubview:self.myViewController.view];

关于ios - 如何在 iOS 3.1 中实例化我的 ViewController? (它已经在 iOS 4.2.1 中运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385256/

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