हाँ, दोनों ही मामलों संभव हो रहे हैं।
क्रैश पर, आप कुछ कोड करने के लिए UncaughtExceptionHandler का उपयोग कर सकते हैं। आप अनुप्रयोग प्रतिनिधि में, रजिस्टर आप इस तरह हैंडलर:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
// Other didFinishLaunchingWithOptions code
और एक ही मीटर फ़ाइल
void uncaughtExceptionHandler(NSException *exception)
{
// App crashed, save last selected tabbar index to the to the NSUserDefaults
[[NSUserDefaults standardUserDefaults] setInteger:tabBarController.selectedIndex forKey:@"LastSelectedTabbarIndex"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
करने के लिए अपने हैंडलर विधि जोड़ने जबकि एप्लिकेशन चलाता है, अंतिम चयनित टैब बार का ट्रैक रखने के नियंत्रक, UITabBarControllerDelegate
का उपयोग करें और नए चयनित टैबबार की अनुक्रमणिका को NSUserDefaults
पर सहेजें। लघु उदाहरण:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
NSUInteger tabIndex = [[tabBarController viewControllers] indexOfObject:viewController];
// I have newly selected index, now save it to the NSUserDefaults
}
इस कोड को पिछले NSUserDefaults
हर बार tabbar के लिए चुनी गई सूचकांक परिवर्तन करने के लिए tabbar के सूचकांक चयनित बचत होगी।
अंत में, जब आप शुरू होता एप्लिकेशन (अपने didFinishLaunchingWithOptions
में), पिछले पढ़ा NSUserDefaults
से tabbar सूचकांक को बचाया और सेट tabbar के लिए चुनी गई सूचकांक तदनुसार
self.tabBarController.selectedIndex = lastSelectedIndexFromDefaults;
संपादित करें: आप भी UINavigationController
रों नियंत्रकों को बहाल करने की जरूरत है ढेर, यह बहुत मुश्किल काम है। मैं आपको बस एक त्वरित अवलोकन देता हूं जो मेरे दिमाग में आता है।
2 मामलों के होते हैं:
- आप कस्टम दृश्य नियंत्रकों initializers है और कस्टम पारित करने के लिए उन लोगों के नियंत्रकों पर आपत्ति की जरूरत है - इस मामले में, अपने लगभग असंभव (कुछ उचित समय में) इस
लागू
- नेविगेशन स्टैक में दृश्य नियंत्रकों को प्रारंभ करने के लिए आप केवल
-init
या -initWithNibName...
का उपयोग करते हैं। आप टैब के रूट UINavigationController
से नियंत्रकों की गणना कर सकते हैं, NSStringFromClass
का उपयोग करके अपने कक्षा के नाम प्राप्त कर सकते हैं और उन्हें NSUserDefaults
पर सहेज सकते हैं। ऐप्स शुरू होने पर, आप प्रक्रिया को उलट देंगे (NSUserDefaults
से कुछ नामों का उपयोग करके उनके नाम तारों का उपयोग कर नियंत्रकों को प्रारंभ करें: UIViewController *vc = [[NSClassFromString(@"aa") alloc] init];
)।
स्रोत
2013-06-12 13:39:48
धन्यवाद अपने विचार उत्तर के लिए अच्छा है, लेकिन मैं चिंतित मई एक इस सब ऐप को नेविगैटन + टैबबार और दो प्रकार के लॉगिन एडमिन के साथ कैसे प्रबंधित करें और इसका उपयोग करें ..? तो इस प्लस लॉग इनस्क्रीन ... और इसके संबंधित सत्र और उपयोगकर्ताओं को कैसे प्रबंधित करें ..? –
वाह मुझे लगता है कि आपको कक्षा (धारावाहिक) बनाना होगा और फिर इसमें सभी आवश्यक जानकारी जैसे खाता प्रकार, टैब इंडेक्स, व्यू कंट्रोलर को सहेजना होगा। इसे nsdata – amar