Hi,
Ich möchte meine iPhone App zu einer Universal App für iPhone und iPad machen, allerdings möchte ich in der iPad-Version einen SplitViewController benutzen. Da der in der iPhone-Version natürlich nicht vorhanden ist, muss ich irgendwie herausfinden, welches Gerät benutzt wird. In meinem OpenGL-Spiel habe ich das durch dieses von Apple vorgeschlagene Makro gelöst (irgendwas mit interface_idiom oder so, müsste nachschauen wie das genau es heißt), allerdings funktioniert das nur für SDK-Versionen 3.2+.
Außerdem muss ich im AppDelegate-Header ja die Referenz UINavigationController *viewController (in der iPhone Version) zu UISplitViewController (in der iPad Version) ändern, damit ich in der MainWindow-ipad.xib NIB Datei die entsprechenden Outlets setzen kann. Meine Frage ist also, wie ich im AppDelegate abhängig von der Geräteart verschiedene properties für den Haupt-ViewController definiere.
Momentan habe ich folgenden Code in der AppDelegate Klasse:
Header:
Alles anzeigen
Main:
Alles anzeigen
Ich hoffe ich habe deutlich machen können, was ich meine ^
Ich möchte meine iPhone App zu einer Universal App für iPhone und iPad machen, allerdings möchte ich in der iPad-Version einen SplitViewController benutzen. Da der in der iPhone-Version natürlich nicht vorhanden ist, muss ich irgendwie herausfinden, welches Gerät benutzt wird. In meinem OpenGL-Spiel habe ich das durch dieses von Apple vorgeschlagene Makro gelöst (irgendwas mit interface_idiom oder so, müsste nachschauen wie das genau es heißt), allerdings funktioniert das nur für SDK-Versionen 3.2+.
Außerdem muss ich im AppDelegate-Header ja die Referenz UINavigationController *viewController (in der iPhone Version) zu UISplitViewController (in der iPad Version) ändern, damit ich in der MainWindow-ipad.xib NIB Datei die entsprechenden Outlets setzen kann. Meine Frage ist also, wie ich im AppDelegate abhängig von der Geräteart verschiedene properties für den Haupt-ViewController definiere.
Momentan habe ich folgenden Code in der AppDelegate Klasse:
Header:
Quellcode
- @interface CardAppDelegate : NSObject <UIApplicationDelegate> {
- UIWindow *window;// viewController soll fürs iPhone UINavigationController und fürs iPad UISplitViewController sein. Außerdem benötige ich fürs iPad noch verschiedene andere Outlets. So allgemein als UIViewController definiert kann ich nicht ordentlich auf Subklassen-Methoden und properties zugreifen.
- UIViewController *viewController;
- }
- @property (nonatomic, retain) IBOutlet UIWindow *window;
- @property (nonatomic, retain) IBOutlet UIViewController *viewController;
- @end
Main:
Quellcode
- @implementation CardAppDelegate
- @synthesize window, viewController;
- - (void)applicationDidFinishLaunching:(UIApplication *)application {
- [window addSubview:viewController.view];
- [window makeKeyAndVisible];
- }
- - (void)applicationWillTerminate:(UIApplication *)application {
- [(RootViewController *)[[(UINavigationController *)viewController viewControllers] objectAtIndex:0] saveDataData];
- }
- - (void)dealloc {
- [viewController release];
- [window release];
- [super dealloc];
- }
Ich hoffe ich habe deutlich machen können, was ich meine ^