2013-10-15 10 views
5

इस साइट पर नया ब्रांड, सुंदर शौकिया ज्ञान यहां! कुछ हफ्ते पहले खुद को पढ़ाना शुरू किया। एक सुंदर ठोस आईफोन ऐप मिला हालांकि आखिरी फीचर जिसे मैं कार्यान्वित करना चाहता हूं वह क्षमता है;आईओएस पहले लॉन्च टूर - यह पता लगाने के लिए कि क्या पहली बार ऐप लॉन्च किया गया है

'पहला लॉन्च केवल' निर्देशित भ्रमण बनाएं।

जो मैं जानना चाहता हूं वह है; यदि उपयोगकर्ता पहले एप्लिकेशन का लॉन्च करते हैं तो मैं दृश्य को एक नए व्यू कंट्रोलर पर रीडायरेक्ट कैसे कर सकता हूं जो बटन के टैप के बिना 'प्रारंभिक दृश्य नियंत्रक' नहीं है, सभी प्रोग्रामिक रूप से।

Ive पहले लॉन्च का पता लगाने के बारे में कुछ ट्यूटोरियल पढ़ते हैं जो मैं समझता हूं। Ive ने कुछ ट्यूटोरियल भी पढ़े और "performSegueWithIdentifier" को आजमाने और कार्यान्वित करने के लिए पुस्तक में सब कुछ करने की कोशिश की, हालांकि मेरे लिए कुछ भी काम नहीं कर रहा है!

शायद इसकी वजह से मैं एक्सकोड 5 का उपयोग कर रहा हूं और आईओएस 7 पर परीक्षण कर रहा हूं। अगर कोई मेरी मदद कर सकता है, तो मैं हमेशा के लिए आभारी रहूंगा!

(void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"]) { 
    } 
    else { 
     // Place code here 
     self.view.backgroundColor = [UIColor redColor]; 

     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    }  

    // Do any additional setup after loading the view, typically from a nib. 
} 
+0

आपने क्या प्रयास किया है? शायद हमें कुछ कोड दिखाएं। आपने काम नहीं करने की कोशिश की है? जितना अधिक विवरण आप दे सकते हैं, बेहतर सुसज्जित हम आपकी मदद करेंगे। – neilco

+0

मैंने अपनी मुख्य पोस्ट में जोड़ा जो मैंने अपनी viewcontroller.m फ़ाइल में जोड़ा था। यह ठीक काम करता है हालांकि मुझे पूरा यकीन नहीं है कि वैकल्पिक व्यू कंट्रोलर खोलने के लिए "// Place code here" भाग में क्या रखा जाए। – Luke

+0

मैंने भी एक सेगू बनाने का प्रयास किया है और इस कोड को रखकर कोड का उपयोग करके इसे प्रोग्रामिक रूप से धक्का दिया है, जहां यह "// यहां कोड कोड" कहता है; [स्वयं प्रदर्शन SegueWithIdentifier: @ "टूर" प्रेषक: स्वयं]; मेरा सीगू "टूर" नाम दिया जा रहा है – Luke

उत्तर

6

आप [[NSUserDefaults standardDefaults] registerDefaults:] उपयोग कर किसी भी चूक पंजीकृत नहीं किया है, पहली बार जब आप फोन [[NSUserDefaults standardDefaults] boolForKey:@"FirstLaunch"] आप NO प्राप्त करते हैं कि कुंजी मौजूद नहीं है जाएगा।

मैं एक अधिक अर्थ कुंजी नाम का उपयोग करना पसंद ऐसे hasPerformedFirstLaunch के रूप में, तो यह जाँच है कि अगर रिटर्न NO और क्रियान्वित पहले प्रक्षेपण अनुक्रम की बात है,:,

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) { 
     // On first launch, this block will execute 

     // Set the "hasPerformedFirstLaunch" key so this block won't execute again 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
    else { 
     // On subsequent launches, this block will execute 
    }  

    // Do any additional setup after loading the view, typically from a nib. 
} 
+0

कोड के अपेक्षाकृत नए होने के नाते, यह बहुत मदद करता है, एक थर्म से अलग करने में सक्षम होने के नाते बस एक बड़ी मदद है।तो अब हमने स्थापित किया है कि पहले लॉन्च को कैसे पहचानें और उस जानकारी को कैसे बचाएं, प्रोग्रामेटिक रूप से किसी अन्य व्यू कंट्रोलर को सीगू कैसे करें? मैंने 'performseguewithidentifier' का उपयोग करने का प्रयास किया है लेकिन कुछ भी नहीं होता! – Luke

+0

मैंने इसे आजमाया नहीं है क्योंकि मैं स्टोरीबोर्ड का अधिक उपयोग नहीं करता हूं, लेकिन शायद आपको पहले लॉन्च चेक करने और 'व्यूविल्लएपियर:' में सेगू करने का बेहतर भाग्य होगा। 'प्रदर्शन सेगुइथइडिएंटिफायर:' काम करना चाहिए। – neilco

+0

मैंने दृश्य में उपयोग करने का प्रयास किया है और देखेंडलोड लोड करें लेकिन कुछ भी नहीं होता है। यह कुछ भी ट्रिगर नहीं करता है! – Luke

1

यहाँ एक निर्देशित टूर सूत्रों https://github.com/sofienazzouz/Guided-Tour है अब अगर आप अपने प्रतिनिधि से निर्देशित दौरे कॉल करना चाहते हैं तो आप इस

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

//// initialize your initialViewController here however you want 
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"knewOrRecentUser"]) { 
     self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.initialViewController]; 
    } else { 
     [[NSUserDefaults standardUserDefaults] setObject:@"old" forKey:@"knewOrRecentUser"]; 
     GuidedTourViewController *guideTour = [[GuidedTourViewController alloc] init]; 
     self.navigationController = [[UINavigationController alloc] initWithRootViewController:guideTour]; 
    } 
[self.window setRootViewController:self.navigationController]; 
} 
1

neilco तरह बुलाना चाहिए

+०१२३५१६४१०६

जो आपने प्रदान किया है वह काम करता है लेकिन आपने एपीपी के पहले लॉन्च के दौरान स्क्रीन लाल (या जो भी रंग आपको पसंद है) को चालू करने के लिए कोड छोड़ दिया है।

अब यह बहुत अधिक प्रतीत नहीं होता है, लेकिन जब कोई नौसिखिया उद्यम करता है तो उतना अधिक जानकारी प्रदान करना सर्वोत्तम होता है ताकि हम समझ सकें कि क्या हो रहा है। हाँ जो मुझे शामिल करता है !! < < = नौसिखिया

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if (![[NSUserDefaults standardUserDefaults] boolForKey:@"hasPerformedFirstLaunch"]) { 
     // On first launch, this block will execute 
     // Place code here 
     self.view.backgroundColor = [UIColor redColor]; 

     // Set the "hasPerformedFirstLaunch" key so this block won't execute again 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"hasPerformedFirstLaunch"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
    else { 
     // On subsequent launches, this block will execute 
    } 

    // Do any additional setup after loading the view, typically from a nib. 
} 
संबंधित मुद्दे