Модальный вход iOS5 больше не запускается в XCode 4.2 - PullRequest
1 голос
/ 15 октября 2011

Я больше не могу показывать свой контроллер просмотра Modal Login при запуске моего приложения после обновления до XCode 4.2 и iOS5. У меня есть приложение TabBar с 4 вкладками, которое требует начального входа в систему для использования. Так как при обновлении он показывает только первое представление, которое должно отображаться после входа в систему - в основном он никогда не загружает контроллер модального представления, отвечающий за обработку входа в систему, и сразу переходит к другим функциям приложения. Точно такой же код, который работает в 4.3, не работает в iOS 5 - это меня озадачило! Я бы предпочел не использовать StoryBoard прямо сейчас, так как это должно работать. Я вставил viewDidLoad для первой вкладки на вкладке ниже - она ​​попадает в оператор if, но фактически никогда не отображает представление входа в систему. Буду очень признателен, если кто-нибудь сможет мне помочь! Я что-то здесь упускаю? Спасибо -

ViewDidLoad:

- (void)viewDidLoad
{

    // Call the super first
    [super viewDidLoad];

    // Only login once
    PinPointMeAppDelegate *appDelegate = (PinPointMeAppDelegate *)[[UIApplication sharedApplication] delegate];

    // It's not loading like it did pre-iOS5 - why?
    NSLog(@"LOADING VIEW %d",appDelegate.loggedInFlag);

    // Only show the login view if we aren't logged in
    if (appDelegate.loggedInFlag == 0) {

        // Initialize our view controller that handles logging in
        ModalLogin *loginView = [[ModalLogin alloc] initWithNibName:@"ModalLogin" bundle:nil];

        // Set the delegate to self
        loginView.delegate = self;

        // Animate presenting the nib "ModalPlace" modally
        loginView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
        [self presentModalViewController:loginView animated:NO];

        // Set the flag that the modal login view is shown
        self.modalShown = 1;
    }

}

AppDelegateDidFinishLaunching:

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

    // Begin determining the User's Lat / Lon
    // Start the Location Manager to get current coordinates to determine where the mapview should zoom
    self.locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManager startUpdatingLocation];

    // Set the logged - in flag to 0 since we just launched
    loggedInFlag = 0;

    // Initially no alert views are shown
    alertViewShown = 0;

    // Initialize the splash screen to Not Shown
    splashScreenFlag = 0;

    // Add the tab bar controller's view to the window and display.
    [self.window addSubview:tabBarController.view];
    [self.window makeKeyAndVisible];

    // Set the delegate for the tabBarController
    tabBarController.delegate = self;

    // Un-Hide the status bar
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];

    return YES;
}

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

попробуйте представить ваш модал на viewDidAppear, это должно исправить.

0 голосов
/ 25 ноября 2011

У меня была такая же проблема при работе с совместимостью с iOS 5.

Как отметил Оскар, вам нужно представить ваш модальный вид в viewDidAppear

Кроме того, по умолчанию, вероятно, в вашем AppDelegate [window makeKeyAndVisible] application:didFinishLaunchingWithOptions:

Вы должны сделать этот вызов после . Будет отображен ваш модальный вид.

Default.png будет отображаться до тех пор, пока вы не сделаете клавишу UIWindow и станет видимой, чтобы вы больше не видели мерцания.

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