XIB файл не появляется - PullRequest
0 голосов
/ 19 марта 2012

Создали приложение с вкладками и создали первый файл XIB, который включает в себя средство выбора даты и круглую прямоугольную кнопку.Проблема в том, что когда я его запускаю, в симуляторе ничего не отображается.Получите только одно предупреждение для «неполной реализации» для BidDatePickerViewController в файле реализации, который я закомментировал.

Вот код для файлов:

Заголовок ViewController:

#import <UIKit/UIKit.h>

@interface BiDDatePickerViewController : UIViewController

@property (strong, nonatomic)IBOutlet UIDatePicker *datePicker;

-(IBAction):buttonPressed;

@end

Реализация ViewController:

#import "BiDDatePickerViewController.h"

@implementation BiDDatePickerViewController  // Incomplete implementation
@synthesize datePicker;

-(IBAction)buttonPressed
{
    NSDate *selected = [datePicker date];
    NSString *message = [[NSString alloc]initWithFormat:@"The date and time selected is: %@", selected];
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"Date And Time Selected" 
                          message:message 
                          delegate:nil 
                          cancelButtonTitle:@"Yes, I did." 
                          otherButtonTitles:nil];
    [alert show];
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSDate *now = [NSDate date];
    [datePicker setDate:now animated:NO];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.datePicker = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

AppDelegate.m

import "BiDAppDelegate.h"

@implementation BiDAppDelegate

@synthesize window = _window;
@synthesize rootController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    [[NSBundle mainBundle] loadNibNamed:@"TabBarController" owner:self options:nil];
    [self.window addSubview:rootController.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}
@end

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Вам нужно установить rootViewController для отображения необходимого контроллера представления (BiDDatePickerViewController) в приложении: didFinishLaunchingWithOptions:

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

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

    [[NSBundle mainBundle] loadNibNamed:@"TabBarController" owner:self options:nil];

    [self.window addSubview:rootController.view];

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    BiDDatePickerViewController* viewController = [BiDDatePickerViewController new];
    [self.window.rootViewController presentModalViewController:viewController animated:NO];
    [viewController release];
    return YES;
}
0 голосов
/ 19 марта 2012
 -(BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions (NSDictionary *) launchOptions 

{

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.window.backgroundColor = [UIColor whiteColor];

    BiDDatePickerViewController* viewController = [[BiDDatePickerViewController alloc]initWithNibName:@"TabBarController" bundle:nil];
    [self.window addSubview:rootController.view];
    [self.window makeKeyAndVisible];
    [viewController release];
        return YES;
}
...