क्या यह जानने के लिए आईओएस 6 में संभव है कि UIStoryboardSegue
ने अपना संक्रमण कब समाप्त कर दिया है? जब मैं नेविगेशन नियंत्रक पर UIViewController
को धक्का देने के लिए UIButton
से UIStoryboardSegue
जोड़ता हूं, तो मैं पुश-संक्रमण समाप्त होने के बाद कुछ करना चाहता हूं।एक सेग्यू के बाद कुछ कोड निष्पादित करने के लिए कैसे किया जाता है?
उत्तर
आप UINavigationControllerDelegate
प्रोटोकॉल का उपयोग कर सकते हैं और उसके बाद निर्धारित करें:
– navigationController:didShowViewController:animated:
यदि आप viewDidAppear:
विधि का उपयोग नहीं करना चाहते हैं, तो आप कस्टम सेगू बना सकते हैं। perform
विधि में आप संक्रमण के लिए एनीमेशन का उपयोग करेंगे, और इसमें पूर्णता ब्लॉक हो सकता है। एनीमेशन पूर्ण होने के बाद आप वहां कोड जोड़ सकते हैं।
तो स्टोरीबोर्ड में मानक ड्रैग-एंड-ड्रॉप सेग्यू के साथ यह संभव नहीं है? – hakonbogen
यह है कि आप इसे कैसे बनाते हैं, लेकिन आपको 'UIStoryboardSegue' को उप-वर्ग करना होगा और इसमें' प्रदर्शन 'विधि लागू करना होगा। उसके बाद, 'स्टोरीबोर्ड' में आपने सीगू की कक्षा को उस समय तक सेट किया है जिसे आपने अभी बनाया है। – Levi
आप उपयोग कर सकते हैं - (शून्य) prepareForSegue: (UIStoryboardSegue *) segue इस: (आईडी) इस
ठीक पहले एक segue स्रोत UIViewController में किया जाता है इस विधि बुलाया जाएगा। यदि आप गंतव्य UIViewController में कुछ कोड करना चाहते हैं तो आप segue का गंतव्य व्यू कंट्रोलर प्राप्त कर सकते हैं।
आप इस कोड को व्यूडेड व्यू कंट्रोलर में viewdidAppear में भी जोड़ सकते हैं।
आप फॉरसेग्यू विधि तैयार करने में गंतव्य UIViewController की विधि को कॉल कर सकते हैं।
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepareForSegue: %@", segue.identifier);
if ([segue.identifier isEqualToString:@"Happy"]) {
[segue.destinationViewController setHappiness:100];
} else if ([segue.identifier isEqualToString:@"Sad"]) {
[segue.destinationViewController setHappiness:0];
}
}
यहां सेट हैप्पीनेस विधि गंतव्य नियंत्रक का है और यहां 100 पास हो रहा है। ताकि आप गंतव्य नियंत्रक में एक विधि लिख सकते हैं और इसे यहाँ कॉल कर सकते हैं
यह वास्तव में संकेत नहीं दे रहा है कि वास्तविक सीगू पूर्ण होने पर - यह segue – Sam
स्विफ्ट में, एक UIViewController
उपवर्ग से आप UINavigationController
उदाहरण प्राप्त कर सकते हैं और सेट जैसा कि दिखाया गया है, segues के पूरा होने के बारे में सूचित करने के लिए प्रतिनिधि। Segues को ट्रैक करने के लिए एक और तार्किक स्थान AppDelegate
हो सकता है।
एक दृश्य नियंत्रक से यह कर का उदाहरण (छोटे के लिए वीसी):
class MyViewControllerSubclass : UIViewController, UINavigationControllerDelegate {
func viewDidLoad() {
self.navigationController.delegate = self
}
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {
println("Did show VC: \(viewController)")
}
}
लेकिन वह केवल आपको पता चलता है जब कुलपति को segue पूरा हो गया है, के रूप में viewWillAppear()
या viewDidAppear()
कुलपति में प्रतिनिधि तरीकों होगा प्रस्तुत किया जा रहा है; हालांकि, वे इस बारे में सूचित नहीं करते हैं कि लक्ष्य वीसी un - प्रस्तुत किया गया है।
वीसी में आप ट्रैकिंग कर रहे हैं, आप यह पता लगाने के लिए निम्नलिखित जोड़ सकते हैं कि वीसी (और इसकी मेमोरी) को हटा दिया गया है, या viewWillDisappear()
विधि को ओवरराइड करें।
deinit {
println(__FUNCTION__, "\(self)")
}
- 1. एक स्ट्रीम समाप्त होने के बाद एसिंक्रोनस कोड निष्पादित करने के लिए कैसे सुनिश्चित किया जाता है?
- 2. Recaptcha.reload() के बाद कोड निष्पादित किया गया है
- 3. अपवाद के बाद कोड निष्पादन कैसे किया जाता है?
- 4. नॉकआउट - अंतिम आइटम के बाद कोड निष्पादित किया गया है
- 5. कुछ कोड निष्पादित करें जब एक SQLAlchemy ऑब्जेक्ट का विलोपन वास्तव में किया जाता है
- 6. ओकैमल: कुछ मूल्यों को संग्रहीत करने के बाद बाद में "साइड इफेक्ट्स" पेश किया जाता है?
- 7. जीसी निष्पादित करने के बाद स्थायी पीढ़ी के आवंटित आकार का आवंटन क्यों किया जाता है?
- 8. # एच के बाद कॉलबैक निष्पादित करने के लिए कैसे करें?
- 9. कोड का एक टुकड़ा के बाद ही सभी धागे से किया जाता है
- 10. jquery के साथ एचटीएमएल फॉर्म रीसेट के बाद कोड निष्पादित करने के लिए कैसे?
- 11. स्थापना के बाद एंड्रॉयड कोड निष्पादित
- 12. एक वास्तविक स्थिति का परीक्षण करने के बाद एक printf कैसे किया जाता है?
- 13. कुछ समय बाद फ़ंक्शन निष्पादित करने के लिए कैसे करें जावास्क्रिप्ट
- 14. एक VxWorks शेड्यूलर कैसे निष्पादित किया जाता है?
- 15. div के बाद फ़ंक्शन को कॉल करने के लिए कैसे तैयार किया जाता है?
- 16. सभी उप-वर्गों के निर्माण के बाद मैं सुपरक्लास में कुछ कोड कैसे निष्पादित करूं?
- 17. सभी सीएसएस नियमों के लागू होने के बाद jQuery कोड निष्पादित किया गया है
- 18. सी # विधि जिसे असेंबली के बाद निष्पादित किया गया है
- 19. आईओएस में एक अनिश्चित अपवाद के बाद कोड निष्पादित करने का कोई तरीका है?
- 20. फ़ॉर्म भरने के बाद मैं कोड कैसे निष्पादित करूं?
- 21. एक वादा का शरीर कब निष्पादित किया जाता है?
- 22. कैसे कुछ निष्पादित करने के लिए किसी भी अपवाद
- 23. अपवाद हैंडलिंग: अंत में फेंकने के बाद निष्पादित किया जाता है?
- 24. ऑटोरेसाइज के बाद फ्रेम आकार कैसे प्राप्त किया जाता है
- 25. deserialization के बाद स्वचालित रूप से एक विधि को निष्पादित करने के लिए कैसे?
- 26. कुछ जावास्क्रिप्ट कोड डीबग करने के लिए एक HTML तत्व
- 27. एक से अधिक क्रियाओं को निष्पादित करने के बाद
- 28. कैसे केवल कुछ एपीआई स्तर पर कोड निष्पादित करने के लिए
- 29. क्या एक Node.js स्क्रिप्ट बाहर निकलने के लिए एक अच्छा तरीका है के बाद "सब कुछ किया गया है"
- 30. कमांड लाइन से PHP कोड निष्पादित करने के लिए कैसे?
की शुरुआत में होता है जैसा कि मैंने अपेक्षा की उतनी खराब नहीं थी। 'self.navigationController = self;' और उस विधि को जोड़ें। मैंने सेग्यू आईडी के आधार पर नियंत्रकों को स्थानीय चर में सहेजा और फिर उन मानों को पारित 'व्यू कंट्रोलर' से तुलना करें। –
यह पुश सेग्स के लिए काम करेगा जहां मूल दृश्य नियंत्रक के पास नेविगेशन नियंत्रक है, लेकिन मोडल सेग के मामले में क्या करना है? – Drux
मैंने लेवी से कस्टम सेगु उत्तर का उपयोग किया और यहां 'उदाहरण' की तरह उदाहरण दिया: http://stackoverflow.com/a/23778394/586489 यह काफी अच्छी तरह से काम करता है, मुझे पता है कि पुश कब पूरा हो गया है और segues का उपयोग कर सकते हैं। –