有一点问题,下面是细分:
我的 AppDelegate 使用它的 rootViewController 一个视图控制器。这个视图控制器的目的是交换几个其他的视图控制器,称之为登录和主屏幕。为了简单起见,我已经从我将发布的代码中删除了所有交换代码,并且让 rootViewController 简单地显示它是第一个内容视图控制器,比如登录。
我遇到的问题是内容视图控制器似乎在 rootViewController 内被向下推了一点。我给 rootViewController 一个蓝色背景,给内容视图控制器一个橙色背景。这是我的代码:
AppDelegate.h
#import <UIKit/UIKit.h>
@class MainViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) MainViewController *main;
@end
AppDelegate.m
#import "AppDelegate.h"
#import "MainViewController.h"
@implementation AppDelegate
@synthesize main;
- (void)dealloc
{
[_window release];
[main release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
MainViewController *mainVC = [[MainViewController alloc] init];
self.main = mainVC;
self.window.rootViewController = self.main;
[self.window makeKeyAndVisible];
return YES;
}
主视图控制器.h
#import <UIKit/UIKit.h>
@class ContentViewController;
@interface MainViewController : UIViewController
@property (nonatomic, retain) ContentViewController *content;
@end
主视图控制器.m
#import "MainViewController.h"
#import "ContentViewController.h"
@implementation MainViewController
@synthesize content;
- (id)init
{
self = [super init];
if (self ) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor blueColor];
ContentViewController *viewController = [[ContentViewController alloc] init];
self.content = viewController;
[self.view insertSubview:self.content.view atIndex:0];
}
- (void)dealloc {
[content release];
[super dealloc];
}
@end
内容视图控制器.h
#import <UIKit/UIKit.h>
@interface LoginVC : UIViewController
@end
内容视图控制器.m
#import "ContentViewController.h"
@implementation ContentViewController
- (id)init
{
self = [super init];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor orangeColor];
}
- (void)dealloc {
[super dealloc];
}
@end
上面的代码给了我一个状态栏,它下面有一个蓝色条(大约是状态栏的高度)(这是主视图控制器),然后是橙色的内容视图控制器,占据了屏幕的其余部分。出于某种原因,主视图控制器似乎将内容视图控制器向下推了一点。
奇怪的是,如果我创建一个视图控制器并使用 XIB 来绘制视图,它看起来就很好,并且内容视图正好位于主视图的顶部。
如果有人能对这个问题有所了解,我将非常感激。
干杯