Делегат приложения не может видеть View Controller - PullRequest
0 голосов
/ 26 июня 2011

Я пытаюсь подключить делегат приложения к контроллеру представления в Xcode4, но я не могу установить соединение по какой-то причине, потому что делегат приложения не может увидеть его в редакторе визуальных объектов.

Добавили контроллер представления в редакторе визуальных объектов, изменили идентификатор класса на HelloWorldViewController и добавили код в файлы App Delegate.h и .m.

Что я делаю не так?

Вот код:

testWindowBasedAppDelegate.h

// -- Add a forward reference to the HelloWorldViewController class --
@class HelloWorldViewController;

#import <UIKit/UIKit.h>

@interface testWindowBasedAppAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    //-- create an instance of the view controller --
    HelloWorldViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

// -- expose the view controller as a property --
@property (nonatomic, retain) HelloWorldViewController *viewController; 

@end

testWindowBasedAppDelegate.m

#import "testWindowBasedAppAppDelegate.h"
#import "HelloWorldViewController.h"

@implementation testWindowBasedAppAppDelegate


@synthesize window;
//-- synthesize the property--
@synthesize viewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    //-- add the new view to the current window --
    [window addSubview:viewController.view];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)dealloc
{
    [viewController release];
    [window release];
    [super dealloc];
}

@end

1 Ответ

1 голос
/ 26 июня 2011

Вам нужно добавить тег IBOutlet для IB, чтобы увидеть его. Объявите собственность как,

@property (nonatomic, retain) IBOutlet HelloWorldViewController *viewController;

Это относится даже к методам, которые вы хотите раскрыть, но вместо этого вы будете использовать IBAction. Например,

- (IBAction)doSomething;

Оба эти тега являются просто индикаторами и фактически объявлены как

#define IBAction void
#define IBOutlet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...