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


if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        // iPhone Classic
        NSLog(@"iPhone 4");
    }
    if(result.height == 568)
    {
        // iPhone 5
        NSLog(@"iPhone 5");
    }
}

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

SideMenuViewController *leftMenuViewController = [[SideMenuViewController alloc] init];



ContainerOfSideMenuByVeerViewController *container = [ContainerOfSideMenuByVeerViewController
                                                      containerWithCenterViewController:[self navigationController]
                                                      leftMenuViewController:leftMenuViewController];

self.window.rootViewController = container;
[self.window makeKeyAndVisible];

return YES;

}

コントローラーを変更するたびに leftMenuViewController に何らかの値が必要ですが、didFinishLaunchingWithOptions がアプリの起動時に 1 回読み込まれるため、1 回だけ読み込まれます。それで、私は何をすべきですか?

4

1 に答える 1

1

プロパティとして保存します。

AppDelegate.h ファイルで:

@property (nonatomic, strong) ContainerOfSideMenuByVeerViewController *container;

AppDelegate.m ファイルで:

self.container = [ContainerOfSideMenuByVeerViewController
                  containerWithCenterViewController:[self navigationController]
                  leftMenuViewController:leftMenuViewController];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];

次に、 leftMenuViewController を変更したい場合は、好きな場所から次を呼び出すことができます。

AppDelegate *delegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
[delegate.container setLeftMenuViewController:...someViewController];

Apple の Documentationにプロパティの紹介があります。

また、if... else...サイズを確認するときは、2 つではなく if ステートメントを使用する必要があります。

CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480.0f)
{
    // iPhone Classic
    NSLog(@"iPhone 4");
}
else if(result.height == 568.0f)
{
    // iPhone 5
    NSLog(@"iPhone 5");
}
于 2013-06-09T10:02:36.870 に答える