self.window. rootviewcontroller = self.某些控制器不工作



我在这里看到了这篇文章(下面的链接),它说你可以替换:

[window addSubview: someController.view];

:

self.window.rootViewController = self.someController;

我的所有配置的基础SDK设置为最新的iOS(目前设置为iOS 4.2),但是当我尝试构建项目时,我得到这个错误:Request for member, 'mainMapView' in something not a structure or union.

添加它与注释掉addSubview:工作得很好。这是有问题的代码…

#import "MakeView2AppDelegate.h" 
 #import "MainMap.h" 
 @implementation MakeView2AppDelegate
 @synthesize window;

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    MainMap *mainMapView = [[MainMap alloc] initWithNibName:nil bundle:nil];
    //[self.window addSubview:mainMapView.view];
    self.window.rootViewController = self.mainMapView;
    [self.window makeKeyAndVisible];
    return YES;
}

self.window。rootViewController vs window addSubview

这是因为您正在寻找mainMapView作为应用程序委托的property。将该行改为:

self.window.rootViewController = mainMapView;

这是假设MapView类继承自UIViewController。不是吗?

在您的示例中,您正在调用self。但是除非mainMapView是类上的一个属性,否则这是行不通的。如果你把self.去掉,它就能正常工作了

自iOS4以来,这已成为Xcode4模板中的默认行为。为了向后兼容,最好使用addSubview,因为其他方法不适用于iPhone OS 3.x

您还没有为mainMapView创建属性。

所以你不能写self。mainmapview

你必须使用mainMapView

查看更多帮助:

           Understanding your (Objective-C) self
http://useyourloaf.com/blog/2011/2/8/understanding-your-objective-c-self.html

相关内容

最新更新