1

我想知道在 xcode 中创建一个新的“单一视图”项目后需要哪些步骤,以实现: 1. 一个在没有 NIB 的情况下初始化的 viewController,而是以编程方式在其视图中加载它自己的控件。
2.如何获取视图控制器的视图load并调用viewDidLoad
3. 使用所有控件使该控制器的视图在屏幕上可见。

我如何从这个函数中解决这个问题:

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

我正在尝试修改一个新的 xcode 项目,但我得到的只是一个黑屏,viewDidLoad 没有被调用

4

4 回答 4

1
UIViewController *myViewController = [[UIViewController alloc] init];
[myViewController.view setFrame:self.view.bounds];
[self.view addSubview:myViewController.view]; // if you want to add it in another viewcontroller

// For testing, set the background color to something other than white (default)

[myViewController.view setBackgroundColor:[UIColor greenColor]];

你走吧!

于 2012-10-24T12:08:02.710 回答
1

那是您的应用程序委托的应用程序加载方法。

在那里,您可能想要创建一个自定义视图控制器的实例,并将其作为 rootViewController 分配给您的应用程序委托 didFinishLoading。应该有这样一行:

// app delegate .h file

#import "CustomViewController.h"

@interface
{
    ...
    CustomViewController *myCustomVC;
    ...
}

@property (nonatomic, retain) CustomViewController *myCustomVC;


// app delegate .m file
@implementation AppDelegate

@synthesize myCustomVC;

-(BOOL)application:(UIApplication*)application didFinishLoadingWithOptions:(NSDictionary *)launchOptions 
{
    ...
    myCustomerVC = [[CustomViewController alloc] init];

    [self.window setRootViewController:myCustomVC]; 
    ...
}

然后在自定义视图控制器的 viewDidLoad 方法中,您可以将其作为测试:

// custom view controller .m file
-(void)viewDidLoad
{
    self.view.backgroundColor = [UIColor redColor];
}
于 2012-10-24T15:07:20.613 回答
1

您需要创建 的子类,并在或UIViewController中设置视图层次结构(取决于定制级别)loadViewviewDidLoad

通过子类UIViewController化加载方法调用将为您进行,因此您不必担心获取viewDidLoad等。

要使其在屏幕上可见,最简单的方法是将其设置为rootViewController应用程序窗口的

didFinishLaunchingWithOptions:在你的应用委托里面

self.window.rootViewController = [[MyViewControllerSubclass alloc] init];
于 2012-10-24T15:24:48.073 回答
0

试试这个 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    HomeViewController *homeVC = [[HomeViewController alloc]init];
    [self.window setRootViewController:homeVC];
    [self.window makeKeyAndVisible];
    return YES;
}

从通用设置的主界面中删除 Main(storyboard reference): enter image description here

Add Launch Image : And select iOS-7 and later in your left corner setting enter image description here

于 2015-12-15T04:31:59.660 回答