13

एक नौसिखिया प्रकार का प्रश्न ठीक है।आईफोन टैब बार नियंत्रक और कोर डेटा

मैं कोर डेटा का उपयोग टैब और नेविगेशन नियंत्रकों के साथ करना चाहता हूं।

एक्सकोड में यदि मैं नेविगेशन आधारित एप्लिकेशन बनाता हूं तो मुझे कोर डेटा चुनने का विकल्प मिलता है। जबकि अगर मैं टैब बार एप्लिकेशन बनाता हूं तो मुझे पसंद नहीं मिलता है।

मैं समझता हूं कि टैब बार्स दृश्य नियंत्रकों को प्रदर्शित करते हैं, इसलिए यह समझ में आता है। हालांकि, डिफ़ॉल्ट रूप से यह एप्लिकेशन प्रतिनिधि में मूल कोर डेटा कोड चिपकाता है, मुझे नहीं लगता कि यह क्यों पेश नहीं किया जाता है।

फिलहाल मैं दो परियोजनाएं बना रहा हूं और उनके बीच काटने और चिपक रहा हूं।

क्या एक्सकोड में यह चूक आपके लिए अजीब लगती है? क्या यह किसी तरह की निगरानी है?

धन्यवाद, मैट

उत्तर

6

टेम्पलेट्स होने के लिए और अधिक 'शुद्ध', टेम्पलेट्स के किसी भी संयोजन डेवलपर के लिए एक व्यायाम के रूप में छोड़ दिया जाता है डिजाइन किए हैं।

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

स्वयं को जोड़ना मुश्किल नहीं है, और देव केंद्र में नमूना ऐप्स हैं जो एक कार्यरत अनुप्रयोग के भीतर कुछ संयोजन दिखाते हैं।

+0

ठीक है, यह आपकी प्रतिक्रिया के लिए धन्यवाद देता है। – Sway

2

एक ही करना था, मुझे लगता है कि सबसे आसान तरीका है एक "विंडो आधारित अनुप्रयोग" बनाने के लिए है, तो इस तरह से अपनी AppDelegate में एक TabBarController घोषित:

AppDelegate.h

@interface CommUnityAppDelegate : NSObject <UIApplicationDelegate> { 
UITabBarController *tabBarController; // add this 
UIWindow *window; 
} 

// and this 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

अपने MainWindow.xib में एक TabBarController डालें और इसे अपने AppDelegates टैबबारकंट्रोलर से कनेक्ट करें।

उसके बाद निम्न पंक्ति जोड़कर इसे दृश्यमान बनाएं

AppDelegate.m

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    [window addSubview:tabBarController.view]; // add this 
    [window makeKeyAndVisible]; 
} 

यह आपको एक बुनियादी सेट अप देता है और वहाँ से आप आसानी से इंटरफ़ेस बिल्डर के साथ नेविगेशन नियंत्रक जोड़ सकते हैं

+0

ग्रेट। वह वास्तव में उपयोगी था। अब से इस दृष्टिकोण का पालन करेंगे। चीयर्स, मैट – Sway

+2

कोर डेटा प्रोजेक्ट में टैब बार प्रोजेक्ट को टैब बार प्रोजेक्ट में जोड़ने के लिए टैब बार कंट्रोलर को टैब बार कंट्रोलर में जोड़ना बहुत आसान है क्योंकि ऐप प्रतिनिधि में बहुत सारे कोर डेटा विधियां और चर आपके लिए बनाए जाते हैं। –

+0

यदि आप "@ सिंथेसाइज़ टैबबार नियंत्रक" जोड़ते हैं; AppDelegate.m करने के लिए यह दो चेतावनियों से छुटकारा पा जाएगा। –

12

मुझे एक ही समस्या का सामना करना पड़ा है और एक टैबबार ऐप बनाना और बाद में मूल डेटा सामग्री जोड़ना समाप्त हो गया।

ऐसा करने के लिए, मैं कर दिया है:

  1. अपने प्रोजेक्ट
  2. < #import जोड़ा CoreData ढांचे जोड़ा CoreData/CoreData.h myproject_Prefix.pch करने के लिए>
  3. जोड़ा हैडर को सौंपने के लिए घोषणाओं और मूल डेटा
  4. मॉडल फ़ाइल बनाने के लिए टेम्पलेट्स द्वारा बनाए गए गेटर कार्यान्वयन - संसाधन समूह (या जहां भी आप अपना मॉडल सामान रखना चाहते हैं) में फ़ाइल जोड़ें और डेटा मॉडल फ़ाइल बनाएं।

यह आपको उसी बिंदु पर ले जाना चाहिए जो आप मूल डेटा समर्थन टेम्पलेट्स के साथ होंगे।

http://developer.apple.com/iphone/library/samplecode/iPhoneCoreDataRecipes/index.html

इससे पता चलता है कि वे किस तरह xib फ़ाइल में परिभाषित के अनुसार आंकड़े देख नियंत्रक के माध्यम से संदर्भ पारित:

अपने विशिष्ट मामले के लिए (tabbar साथ कोर डेटा), एप्पल एक अच्छा नमूना एप्लिकेशन है, जो चीज मुझे थोड़ी देर तक पकड़ती थी।

उम्मीद है कि इससे मदद मिलती है।

चीयर्स, पीटर

7

तुम खुद को जोड़ सकते हैं यह करने के लिए बहुत सरल है:

टैब बार टेम्पलेट सेटिंग बदलने के लिए आप निम्न फ़ाइल

खोलने के लिए XCode 4.2 के लिए है:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tabbed Application.xctemplate/TemplateInfo.plist 

कोर को जोड़ने के लिए डेटा विकल्प आपको संपत्ति को com.apple.dt.unit.coreDataCocoaTouchApplication "पूर्वजों की कुंजी में जोड़ना होगा:

ए प्रॉपर्टी जोड़ fter यह इस तरह दिखना चाहिए:

<key>Ancestors</key> 

<array> 
<string>com.apple.dt.unit.storyboardApplication</string> 
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string> 
</array> 

पिछला XCode संस्करण

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tab Bar Application.xctemplate/TemplateInfo.plist 

के लिए जोड़ने के लिए कोर डेटा विकल्प आपको पूर्वज कुंजी करने के लिए संपत्ति "com.apple.dt.unit.coreDataCocoaTouchApplication" जोड़ने के लिए:

संपत्ति जोड़ने के बाद यह इस तरह दिखना चाहिए:

<key>Ancestors</key> 

<array> 
<string>com.apple.dt.unit.cocoaTouchFamiliedApplication</string> 
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string> 
</array> 

एक्सकोड को पुनरारंभ करें!

सब कुछ ठीक काम करना चाहिए: !! और जब आप एक्सकोड में एक नया टैब्ड प्रोजेक्ट बनाते हैं तो आपके पास कोर डेटा विकल्प दिखाई देता है।

+0

क्या आपने परीक्षण किया है यदि इसका उपयोग करने वाला ऐप काम कर रहा है? क्योंकि टैब बार में नियंत्रक ऑब्जेक्ट कॉन्टेक्स्ट पास करने में कुछ अजीब बात है नियंत्रक – kappa

+0

यह एक्सकोड 5 में एक आकर्षण की तरह काम करता है। –

+0

मेरे लिए काम करता है केवल कुछ अतिरिक्त नौकरी की जरूरत है – makboney

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