2010-01-04 11 views
10

मैं चारों ओर खोज रहा हूं लेकिन दुर्भाग्य से कोई भाग्य नहीं है।presentModalViewController दृश्य में DidLoad पहले लॉन्च

मेरे ऐप को उपयोगकर्ता को ऐप लॉन्च करने पर पहली बार साइन इन/साइन अप करने की आवश्यकता होती है। मुझे पता है कि पहले लॉन्च (NSUserDefaults का उपयोग करके) को कैसे निर्धारित किया जाए, लेकिन जब भी मैं साइन इन/साइन अप नियंत्रण वाले मोडल को प्रस्तुत करने का प्रयास करता हूं, कुछ भी नहीं होता है।

यहाँ मैं क्या है:

-(void)viewDidLoad { 
    [self showLogin]; 
    [super viewDidLoad]; 
} 

-(void)showLogin {  
    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"AccountView" bundle:nil]; 
    controller.delegate = self; 

    controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentModalViewController:controller animated:YES]; 

    [controller release]; 
} 

हालांकि, कुछ नहीं होता। मुख्य दृश्य सिर्फ सामान्य के रूप में लोड होता है। कोई भी मदद बहुत ही सराहनीय होगी।

-Giles

उत्तर

13

[अद्यतन]

का उपयोग करके बस फिक्स्ड ..

-(void)viewDidAppear:(BOOL)animated 
{ 

} 

बजाय

-(void)viewDidLoad 
{ 

} 

वैसे भी धन्यवाद!

/मूर्खता

+5

लेकिन यह समस्या पैदा करेगा, यह हर बार कॉल करेगा जब आपका मेल व्यूएपर ...!? –

7

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

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:(BOOL)animated]; 

    if(justLaunched) 
    { 
     justLaunched = NO; 
     if(settingsFileExists) 
     { 
      [self displayMainView]; 
     } 
     else 
     { 
      [self displaySetupView]; 
     } 
    } 
} 
0

और viewDidLoad में यह लागू बहुत ही सुरक्षित नहीं है: अनुक्रम viewDidLoad/viewDidUnload क्रम में हो सकता है जब iPhone क्रम कुछ नि: शुल्क वापस पाने के लिए में कुछ दृश्यों को रिहा करने की जरूरत है याद।

इस तरह के दृश्य के पक्ष प्रभाव हो सकता है कि अपनी प्रवेश नियंत्रक दिखाया जाएगा ...

जैसा कि आपने कहा viewDidAppear बेहतर लग रहा है, लेकिन बस appDidFinishedLaunching अपने UIApplication के प्रतिनिधि के अंत में यह नहीं डाल?

2

प्रदर्शन चयनकर्ता का उपयोग करने के बारे में: withObject: viewDidLoad फ़ंक्शन में बाद में? इस तरह मैं 0.1s की छोटी देरी के साथ ऐसा करता हूं।

संबंधित मुद्दे