Tôi đang gặp một số sự cố khi chuyển ngữ cảnh từ ứng dụng đại biểu sang trình điều khiển chế độ xem. Tôi đã tìm thấy nhiều hướng dẫn trên internet và tất cả đề xuất sử dụng phương pháp didFinishLaunchingWithOptions
để tạo bộ điều khiển chế độ xem, đặt thuộc tính ngữ cảnh và đẩy nó. Vấn đề của tôi là tôi muốn sử dụng bảng phân cảnh và bộ điều khiển chế độ xem được tạo và được đẩy vào trong đó chứ không phải trong ủy nhiệm ứng dụng.Chuyển ngữ cảnh trong iOS để sử dụng Dữ liệu chính với Bảng phân cảnh
Tôi đã cố gắng để làm điều này trong đại biểu ứng dụng của tôi:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//instantiate local context
NSManagedObjectContext *context = [self managedObjectContext];
if (!context)
{
// Handle the error.
NSLog(@"Error: Context is null");
}
//reference the view controller
helloCoreDataViewController1_001 *rootViewController = [helloCoreDataViewController1_001 alloc];
// Pass the managed object context to the view controller
rootViewController.managedObjectContext = context;
return YES;
}
và điều này trong điều khiển điểm của tôi:
@implementation helloCoreDataViewController1_001
@synthesize name, address, phone, status, managedObjectContext;
//....
- (IBAction)saveContact
{
NSLog(@"name: %@",self.name.text);
NSLog(@"address: %@",self.address.text);
NSLog(@"phone: %@",self.phone.text);
//Save the new instance of the contact entity
Contact *contact = (Contact *)[NSEntityDescription insertNewObjectForEntityForName:@"Contacts" inManagedObjectContext:managedObjectContext];
[contact setContactName:[NSString stringWithFormat:@"%@",self.name.text]];
[contact setValue:self.address.text forKey:@"address"];
[contact setContactPhone:[NSString stringWithFormat:@"%@",self.phone.text]];
NSError *error = nil;
if (![managedObjectContext save:&error])
{
// Handle the error.
NSLog(@"error: %@", error.description);
self.status.text = @"Error: contact NOT saved";
}
else
self.status.text = @"Contact saved";
}
Khi tôi gỡ lỗi, tôi có thể thấy rằng trong các đại biểu ứng dụng, ngữ cảnh được điền chính xác và cả thuộc tính trong trình điều khiển chế độ xem đều ok. Nhưng khi phương thức saveContact
của tôi được gọi, ngữ cảnh trống.
Bạn có bất kỳ đề xuất nào về điều này không? Làm thế nào tôi có thể vượt qua bối cảnh để bộ điều khiển xem với bảng phân cảnh?
Điều này làm cho hệ thống cấp bậc lớp học của bạn rất cứng nhắc, điều khiển xem của bạn bây giờ phải biết về các đại biểu ứng dụng và phụ thuộc vào nó. Cá nhân tôi thích có thuộc tính trên bộ điều khiển chế độ xem mà tôi chỉ định khi tạo chế độ xem. –
@Chris bạn nói đúng. Đây chỉ là một phương pháp khác. Tôi đã sử dụng điều này trong một trong các ứng dụng của mình có ngữ cảnh khác. Đây chỉ là một lựa chọn khác sau đó ... – Farini