SORU
13 Kasım 2013, ÇARŞAMBA


Film Şeridi için en iyi uygulamalar ekran, çıkış üzerine veri temizleme işleme giriş

Bir iOS app bir film Şeridi kullanılarak inşa ediyorum. Kök görünümü denetleyicisi Sekme Çubuğu Denetleyicisi. Giriş/çıkış işlemi yaratıyorum, ve çoğunlukla iyi çalışıyor ama bazı sorunlar var. Tüm bunları ayarlamak için en İYİ yolu bilmek istiyorum.

Aşağıdakileri gerçekleştirmek istiyorum

  1. Bir oturum açma ekranı uygulaması başlattı ilk kez gösteriyor. Onlar oturum açtığınızda, Sekme Çubuğu Denetleyicisi ilk sekmesine gidin.
  2. Herhangi bir zaman eğer oturum eğer bundan sonra uygulamayı başlatmak, kontrol etmek ve düz kök Sekme Çubuğu Denetleyicisi ilk sekmeye geçin.
  3. Onlar el ile oturum kapatma düğmesini tıklatın, Oturum Açma ekranını göster ve görünüm denetleyicileri tüm verileri temizleyin.

Şimdiye kadar yaptıklarım kök Sekme Çubuğu Denetleyicisi denetleyicisi görünüm ve özel bir Giriş görünümü benim denetleyicisi buluyor oluşturulan ayarlanır. Sekme Çubuğu kontrol benim sınıf içinde, viewDidAppear yöntemin içinde oturum açmış olup olmadığını kontrol ediyorum ve bir segue gerçekleştirin: [self performSegueWithIdentifier:@"pushLogin" sender:self];

Ben de oturum kapatma eylemi yapılması gereken bir bildirim ayarları: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil];

Çıkış üzerine, Anahtarlık kimlik bilgileri açık, [self setSelectedIndex:0] çalışma ve segue giriş tekrar kumanda görmek için gerçekleştirin.

Bu gayet iyi çalışıyor, ama ben merak ediyorumbu mantık AppDelegate olmalıdır?Ben de iki sorun var:

  • İlk önce uygulamayı başlatmakTab kısaca segue yapılmadan önce Kumanda Çubuğunu gösterir. viewWillAppear kodu hareketli denedim ama segue erken çalışmaz.
  • Onlar da çıkış ne zaman, tüm veriler hala tüm görünüm denetleyicileri içinde. Eğer yeni bir hesap için oturum açma, eski hesap verileri hala yenileme kadar görüntülenir.Bir şekilde bu kolay çıkış açık lazım.

Bu elden açığım. Giriş ekranı kök görünümü denetleyicisi, veya AppDelegate bir gezinti denetleyicisi her şeyi işlemek için oluşturma vermeyi düşündüm... sadece en iyi yöntem bu noktada ne olduğundan emin değilim.

CEVAP
19 ŞUBAT 2014, ÇARŞAMBA


Your storyboard should look like this

Senin appDelegate.senin didFinishLaunchingWithOptions içinde m

//authenticatedUser: check from NSUserDefaults User credential if its present then set your navigation flow accordingly

if (authenticatedUser) 
{
    self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];        
}
else
{
    UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"LoginViewController"];
    UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];

    self.window.rootViewController = navigation;
}

SignUpViewController.m dosya

- (IBAction)actionSignup:(id)sender
{
    AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

    appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
}

Dosya MyTabThreeViewController.m

- (IBAction)actionLogout:(id)sender {

    // Delete User credential from NSUserDefaults and other data related to user

    AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

    UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"LoginViewController"];

    UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
    appDelegateTemp.window.rootViewController = navigation;

}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iBand IguJoo

    iBand IguJoo

    25 AĞUSTOS 2006
  • LatinNinja99

    LatinNinja99

    28 EKİM 2011
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007