दिलचस्प पोस्ट
मैं एक वेक्टर में किसी आइटम का सूचक कैसे प्राप्त करूं? LPARAM और WPARAM की परिभाषा क्या है? छोड़ने के बाद आवेदन नहीं छोड़ना ग्रेडल के साथ एपीके नाम बदलें जावास्क्रिप्ट डीबगर पृष्ठभूमि सेवा से मैं एंड्रॉइड गतिविधि में जानकारी कैसे अपडेट कर सकता हूं एंड्रॉइडस्ट्यूडियो – ग्रेडल में मॉड्यूल निर्भरताएं मैं ऑब्जेक्ट को कैसे डिसेरीलाइज कर सकता हूं, अगर इसे किसी दूसरे पैकेज में ले जाया गया या उसका नाम बदल दिया गया? C # का उपयोग कर छवि को कैसे क्रॉप करना है? JSON और XML तुलना कैसे डॉस बैच newline चर हैक काम करता है समझाओ स्क्रॉल करते समय रीसायकल दृश्य के दृश्यमान दृश्य प्राप्त करें Autowayout के साथ सभी subviews फिट करने के लिए पर्यवेक्षण का आकार कैसे बदलना है? AngularJS फ़ोल्डर संरचना लोड स्क्रिप्ट अतुल्यकालिक रूप से

आईओएस में केवल पहली लॉन्च पर स्क्रीन दिखाएं

Tweetbot और साफ़ शो के ऐप की पहली शुरुआत में एक छोटा ट्यूटोरियल स्क्रीन कैसे ऐप काम करता है छोटे ट्यूटोरियल के साथ स्क्रीन केवल ऐप की पहली शुरुआत (1 समय) पर चली जाती है

कैसे और साथ मैं एक ऐसी ही चीज़ कर सकता हूँ? क्या कोई मुझे सही दिशा में धक्का दे सकता है?

देखें मेरा मतलब:

यहां छवि विवरण दर्ज करें

वेब के समाधान से एकत्रित समाधान "आईओएस में केवल पहली लॉन्च पर स्क्रीन दिखाएं"

आपके दृश्य में डीडलोड:

if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"aValue"]]) { [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"aValue"]; [[NSUserDefaults standardUserDefaults] synchronize]; //Action here } 

मैं वास्तव में IOS मतलब Xcode द्वारा संभालने हूँ

आपको क्या करने की आवश्यकता है, यह दर्शाता है कि उपयोगकर्ता ने पहले ट्यूटोरियल स्क्रीन को देखा है या नहीं, यह झंडा संचय करने के लिए NSUserDefaults वर्ग का उपयोग कर रहा है।

जब आपका ऐप पहले लोड करता है (या उस बिंदु पर आप यह तय करना चाहते हैं कि ट्यूटोरियल स्क्रीन दिखाने के लिए या नहीं), तो ऐसा कुछ करें:

 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"hasSeenTutorial"]) [self displayTutorial]; 

यह वर्तमान उपयोगकर्ता के लिए "hasSeenTutorial" नामक मान के लिए सहेजे गए NSUserDefaults की जांच करता है, जो अभी तक मौजूद नहीं होगा। चूंकि यह अस्तित्व में नहीं है, यह displayTutorial को फोन displayTutorialdisplayTutorial ट्यूटोरियल दृश्य बनाने के लिए आपकी विधि को दर्शाता है। आप उस भाग को समझ सकते हैं

फिर, एक बार उपयोगकर्ता ट्यूटोरियल स्क्रीन बंद कर देता है:

 [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasSeenTutorial"]; 

यह मान आपके उपयोगकर्ता प्रोफ़ाइल के लिए सहेजा जाएगा, जिसका अर्थ है कि वह अगली बार जांचता है, यह सही होगा, इसलिए displayTutorial को नहीं कहा जाएगा।

निश्चित रूप से, यदि हम उपयोगकर्ता को अपडेट के बाद सुविधाओं के बारे में कुछ बताना चाहते हैं (न केवल ऐप को पहली बार लॉन्च किया गया है), तो नीचे दिए गए समाधान उपयुक्त हो सकते हैं।

आपके दृश्य में डीडलोड:

 NSString *currentBundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; NSString *previousBundleVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"PreviousBundleVersion"]; if (![currentBundleVersion isEqualToString:previousBundleVersion] ) { // Here you can initialize your introduction view and present it! } 

उपयोगकर्ता परिचय बंद करने के बाद:

 NSString *currentBundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; if (standardUserDefaults) { [standardUserDefaults setObject:currentBundleVersion forKey:@"PreviousBundleVersion"]; [standardUserDefaults synchronize]; } 

इस मामले में आपके मानक यूज़र डीफॉल्ट में संग्रहीत संस्करण बंडल संस्करण वर्तमान बंडल संस्करण से केवल अद्यतन के बाद अलग होगा और पहले लॉन्च के साथ ही एक बार दिखाया जाएगा।

एक BOOL के साथ अपने उपयोगकर्ता डिफ़ॉल्ट आरंभ करें, जिसे कुछ instructionsSeen (या जो भी आप चाहते हैं) निर्देशित किया गया है और अपने ऐप प्रतिनिधि के प्रारंभिक विधि में इसे किसी को सेट करें .. अपने ऐप में, इस मान का परीक्षण करें और अगर यह आपकी ट्यूटोरियल स्क्रीन प्रदर्शित NO करता है इस स्क्रीन को दिखाने और प्रदर्शित करने के भाग के रूप में, YES instructionsSeen को सेट करें और इसे अपने डिफ़ॉल्ट में संग्रहीत करें।

इस तरह डेमो स्क्रीन केवल पहली लॉन्च पर दिखाई देगी, जब तक उपयोगकर्ता फिर से एप्लिकेशन को अनइंस्टॉल और इंस्टॉल न करे।

आप छोटी संख्या की लॉन्च के लिए डेमो भी दिखा सकते हैं (3) इस स्थिति में, किसी संख्या का उपयोग करने के लिए BOOL का उपयोग न करें और इसके बजाय इसे बढ़ाना।

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (![defaults objectForKey:@"firstRun"]) { [defaults setObject:[NSDate date] forKey:@"firstRun"]; [self displayTutorial]; } 

एक्सडिलेग में Xamarin.iOS संस्करण:

 UIStoryboard storyboard = UIStoryboard.FromName("Main", null); if (NSUserDefaults.StandardUserDefaults.BoolForKey ("hasSeenTutorial") == false) { UIViewController vc = storyboard.InstantiateViewController ("StartPageViewController"); this.Window.RootViewController = vc; } else { UIViewController vc = storyboard.InstantiateViewController ("NonStartPageViewController"); this.Window.RootViewController = vc; } this.Window.MakeKeyAndVisible (); 

मेरे प्रारंभ पृष्ठ दृश्य नियंत्रक में, मेरे पास एक बटन है जो NSUserDefaults को सही पर सेट करता है, इसलिए अगली बार जब यह चलता है, तो यह नॉनस्टार्टपेज वीआईयूआई नियंत्रक से शुरू हो जाएगा:

 partial void RegisterButton_TouchUpInside (UIButton sender) { NSUserDefaults.StandardUserDefaults.SetBool(true,"hasSeenTutorial"); NSUserDefaults.StandardUserDefaults.Synchronize(); } 

स्विफ्ट संस्करण:

 if !(NSUserDefaults.standardUserDefaults().boolForKey("seenTutorial")) { //Tutorial part NSUserDefaults.standardUserDefaults().setBool(true, forKey: "seenTutorial") } 

हर कोई इसे और अधिक जटिल और माप कर रहा है जितना इसकी आवश्यकता है … सरल पूरा समाधान

ViewDidLoad में:

 if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLoadKey"]) { self.imageView.hidden = YES; }else{ self.imageView.hidden = NO; [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"FirstLoadKey"]; [[NSUserDefaults standardUserDefaults]synchronize]; }