13

Ok bit của câu hỏi loại mới.Bộ điều khiển thanh tab iphone và dữ liệu lõi

Tôi muốn sử dụng Dữ liệu cốt lõi cùng với các bộ điều khiển Tab và Điều hướng.

Trong XCode nếu tôi tạo Ứng dụng dựa trên điều hướng, tôi có tùy chọn để chọn Dữ liệu chính. Trong khi đó, nếu tôi tạo ra một ứng dụng Tab Tab tôi không nhận được sự lựa chọn.

Tôi hiểu rằng Thanh tab hiển thị các trình điều khiển chế độ xem nên nó có ý nghĩa. Tuy nhiên, theo mặc định, nó sẽ chặn mã Dữ liệu cốt lõi cơ bản trong ứng dụng đại biểu Tôi không thấy lý do tại sao điều này không được cung cấp.

Hiện tại tôi đang tạo hai dự án và cắt và dán giữa chúng.

Sự thiếu sót này trong XCode có vẻ lạ đối với bạn không? Có một số loại giám sát?

Cảm ơn, Matt

Trả lời

6

Các mẫu được thiết kế để có nhiều 'tinh khiết', bất kỳ sự kết hợp của các mẫu là trái như một bài tập cho các nhà phát triển.

Họ có thể thực hiện mẫu CoreData + Tab và Trình điều khiển Nav, nhưng để công bằng thì họ phải thực hiện mọi kết hợp khác có thể là 'hợp lý'.

Kết hợp chúng không phải là khó, và có các ứng dụng mẫu trong trung tâm dev hiển thị một số kết hợp trong một ứng dụng đang hoạt động.

+0

Ok, cảm ơn bạn đã phản hồi. – Sway

2

Đã phải làm như vậy, tôi nghĩ rằng cách dễ nhất là để tạo ra một "Ứng dụng Window-based", sau đó khai báo một tabBarController trong appdelegate của bạn như thế này:

AppDelegate.h

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

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

Trong MainWindow.xib của bạn chèn một TabBarController và kết nối nó với tabBarController AppDelegates của bạn.

Sau đó làm cho nó có thể nhìn thấy bằng cách thêm dòng sau

AppDelegate.m

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

này cung cấp cho bạn một bộ cơ bản lên và từ đó bạn có thể dễ dàng thêm bộ điều khiển chuyển hướng với xây dựng giao diện

+0

Tuyệt vời. Điều đó thực sự hữu ích. Sẽ làm theo cách tiếp cận này từ bây giờ. Chúc mừng, Matt – Sway

+2

Việc thêm bộ điều khiển thanh tab vào dự án Core Data dễ dàng hơn rất nhiều so với thêm dữ liệu cốt lõi vào dự án thanh tab vì rất nhiều phương thức và biến số của Dữ liệu cốt lõi trong ứng dụng được tạo cho bạn. –

+0

Ngoài ra, nếu bạn thêm "@synthesize tabBarController;" để AppDelegate.m nó sẽ thoát khỏi một vài cảnh báo. –

12

Tôi đã phải đối mặt với cùng một vấn đề và kết thúc việc tạo ra một ứng dụng tabBar và thêm các dữ liệu cốt lõi sau này.

Để làm như vậy, tôi đã:

  1. thêm khuôn khổ CoreData để dự án của tôi
  2. thêm #import < CoreData/CoreData.h> để myproject_Prefix.pch
  3. thêm tờ khai ủy tiêu đề và triển khai getter giống như được tạo bởi các mẫu hỗ trợ dữ liệu cốt lõi
  4. tạo tệp mô hình - thêm tệp vào nhóm tài nguyên (hoặc bất cứ nơi nào bạn muốn đặt công cụ mô hình của mình) và tạo tệp mô hình dữ liệu.

Điều này sẽ giúp bạn đạt được điểm tương tự như với các mẫu hỗ trợ dữ liệu cốt lõi.

Đối với trường hợp cụ thể của bạn (dữ liệu cốt lõi với thanh tabbar), Apple có một ứng dụng mẫu tốt:

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

này cho thấy cách họ vượt qua bối cảnh thông qua bộ điều khiển xem có liên quan được xác định trong file xib đó là thứ đã giữ tôi trong một thời gian.

Hy vọng điều này sẽ hữu ích.

Chúc mừng, Peter

7

Bạn có thể thêm nó bản thân nó rất đơn giản để làm:

Để sửa đổi cài đặt mẫu Tab Bar bạn phải mở file sau

Đối với XCode 4.2:

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

Để thêm lõi tùy chọn dữ liệu bạn phải thêm thuộc tính "com.apple.dt.unit.coreDataCocoaTouchApplication" vào khóa tổ tiên:

a fter thêm tài sản nó sẽ giống như thế này:

<key>Ancestors</key> 

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

Đối với phiên bản XCode Previous

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

Để thêm tùy chọn dữ liệu cốt lõi bạn có thêm thuộc tính "com.apple.dt.unit.coreDataCocoaTouchApplication" cho Ông Bà Cha Mẹ chính:

sau khi thêm thuộc tính, nó sẽ trông giống như sau:

<key>Ancestors</key> 

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

Khởi động lại Xcode!

Mọi thứ sẽ hoạt động tốt ngay bây giờ: !! Và bạn có tùy chọn Dữ liệu cốt lõi hiển thị khi bạn tạo một dự án tab mới trong Xcode.

+0

bạn đã kiểm tra xem ứng dụng đang sử dụng nó có hoạt động không? Bởi vì có điều gì đó lạ khi chuyển qua managedObjectContext qua các thanh điều khiển xem thanh tab – kappa

+0

Công trình này giống như một nét duyên dáng trong Xcode 5. –

+0

chỉ hoạt động với tôi, chỉ cần thêm một số công việc mới được tăng lên – makboney