设置no storyboard后不调用viewDidLoad

Posted

技术标签:

【中文标题】设置no storyboard后不调用viewDidLoad【英文标题】:viewDidLoad is not called after the setting of no storyboard 【发布时间】:2016-02-26 17:32:45 【问题描述】:

我想做的是创建没有情节提要的 UIImageView,但未能让它显示。起初我从 info.plist 中删除了storyboardLaunchScreen.xibMain StoryBoard file base name。然后我创建的内容如下:

AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

AppDelegate.m

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

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

    return YES;

ViewController.m

- (void)viewDidLoad 
    [super viewDidLoad];


    UIImage *imageData =[UIImage imageNamed:@"aaa.png"];

    UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 30, 100, 100)];
    myImage.image = imageData;
    [self.view addSubview:myImage];


我是初学者,找不到任何解决方案。 有谁知道如何解决这个问题? 提前谢谢你。

Xcode 6.4

OSX 10.10.5

【问题讨论】:

我没有看到任何在你的代码中以编程方式加载的故事板,你也没有设置根控制器。您不能以编程方式创建情节提要。您可以以编程方式加载它或加载 xibs! 【参考方案1】:

您只需将窗口的根视图控制器设置为 ViewController 的实例

self.window.rootViewController = [[ViewController alloc] init];

您还必须在 AppDelegate 文件的顶部导入 ViewController.h

【讨论】:

有效!你真的帮了我大忙。非常感谢! @NI 没问题。有机会请采纳我的回答

以上是关于设置no storyboard后不调用viewDidLoad的主要内容,如果未能解决你的问题,请参考以下文章

onBackPressed 在 recreate() 后不调用

UITextView scrollEnabled = YES 在 iOS8 中设置 scrollEnabled = NO 后不起作用

索引ViewResult在从ajax调用回调后不重新呈现

启动应用程序后不出现模态视图

使用Linux调用资源库中的Job报错-ERROR: No repository provided, can't load job.

UIToolbar 隐藏后不显示