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
- 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.
- 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.
- 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
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;
}
Nasıl ya iPhone 5 ekran çözünürlüğü iç...
Dönüştürme iPad için iPhone Film Şerid...
Node.js express.js uygulamalar için ha...
Bir film şeridi içinde, nasıl birden f...
Ekran görüntüsü iPhone simülatörü için...