2013-09-24 32 views
13

Tôi đã cố gắng hiển thị các bộ điều khiển xem được xác định hệ thống (MFMailComposeViewController, TWTweetComposeViewController, vv ..) dưới dạng chế độ xem phương thức.Không thể hiển thị ViewController phương thức trong iOS7

Nhưng những người kiểm tra chế độ xem này không xuất hiện trong iOS 7 (các ứng dụng này chạy trong iOS5, iOS6).

Chế độ xem được tạo bởi tôi xuất hiện trong iOS7 (ex.HogeViewController).

Tôi không gọi presentViewController:animated:completion tại viewDidLoad hoặc viewWillAppear.

Có ai có ý tưởng không?

bản ghi

Console:

init Error Domain=NSCocoaErrorDomain Code=4097 "The operation couldn’t be completed. (Cocoa error 4097.)"

hoặc

_serviceViewControllerReady:error: Error Domain=NSCocoaErrorDomain Code=4097 "The operation couldn’t be completed. (Cocoa error 4097.)"

hoặc

Unbalanced calls to begin/end appearance transitions for .

TWTweetComposeViewController (không xuất hiện)

TWTweetComposeViewController *viewController = [[TWTweetComposeViewController alloc]init]; 
viewController.completionHandler = ^(TWTweetComposeViewControllerResult result){ 
    NSLog(@"Result : %d",result); 
}; 
[self presentViewController:viewController animated:YES completion:NULL]; 

Log

Result : 0

MFMailComposeViewController (xuất hiện trong chốc lát và bỏ sớm)

- (void)send:(NSString*)email{ 
    if ([MFMailComposeViewController canSendMail]) { 
     MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
     picker.mailComposeDelegate = self; 

     NSArray *toRecipients = @[email]; 
     [picker setToRecipients:toRecipients]; 

     [picker setSubject:@"Subject"]; 
     [picker setMessageBody:@"Body" isHTML:NO]; 
     [self.navigationController presentViewController:picker animated:YES completion:NULL]; 
    } 
} 

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { 
    [self dismissViewControllerAnimated:YES completion:^{ 
     NSLog(@"error:%@,result:%d",error.description,result); 
    }]; 
} 

Log

_serviceViewControllerReady:error: Error Domain=NSCocoaErrorDomain Code=4097 "The operation couldn’t be completed. (Cocoa error 4097.)" Unbalanced calls to begin/end appearance transitions for . error:(null),result:0

+3

thú vị, c bạn vui lòng hiển thị mã của bạn không? – Woodstock

+0

Cảm ơn bạn đã bình luận. Tôi đã chỉnh sửa câu hỏi. –

+0

Bạn có thể thử đặt hoạt ảnh: không có chuyển tiếp không? – Woodstock

Trả lời

24

Tắt vấn đề chỉ hiển thị khi tùy chỉnh UIBarButtons. Nếu chúng tôi sử dụng thông tin sau trong ứng dụng 32 bit chạy trên iPhone 5s, chúng tôi có sự cố:

[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0, 1.0) 
              forBarMetrics:UIBarMetricsDefault]; 

Rời khỏi dòng đó hoạt động xung quanh vấn đề. Chúng tôi đã đệ trình một radar.

+1

Cảm ơn bạn đã phản hồi.Tôi đã xóa ** [[UITabBarItem xuất hiện] setTitlePositionAdjustment: UIOffsetMake (0, -1)]; ** và khắc phục sự cố này! –

+1

Tôi đã báo cáo vấn đề này cũng như rdar: // 15165678 –

+5

Điều này thật điên rồ, tôi hoan nghênh bạn vì đã tìm thấy lỗi trong mã của Apple. – runmad

2

Tôi nhận được hành vi tương tự trong những tình huống tương tự. Trong trường hợp của tôi, hóa ra là do sử dụng bộ chọn "setSeparatorInset" của UITableView. Loại bỏ vấn đề đó. Điều này trông giống như một lỗi trên đầu của Apple chắc chắn, nhưng ít nhất có một cách giải quyết.

This question cho thấy ai đó có vấn đề tương tự và trong trường hợp của họ loại bỏ bộ chọn giao diện UISearchBar đã sửa nó. Vì vậy, một cái gì đó là sai với một số các bộ chọn UIAppearance.

7

Đây là vấn đề khi bạn không biên dịch 64bit (arm64) trong cài đặt dự án của mình. Mặc dù điều này có thể không phải lúc nào cũng là một tùy chọn cho một số người vì hiện tại Google Analytics không hỗ trợ các thiết bị 64 bit.

+0

giải pháp của bạn không hoạt động đối với tôi, rất tiếc là – wkhatch

+0

và tôi đang ăn những từ trước đây của mình ở đây; có cài đặt xây dựng không chính xác và sau khi đã được khắc phục và đã có thể xây dựng được 64, vấn đề này đã biến mất. Upvoting ... ;-) – wkhatch

1

Bài đăng này đã giúp tôi tìm ra giải pháp cho một vấn đề tương tự. Nhưng vấn đề của tôi không liên quan đến thanh tab, vì vậy tôi cho rằng tôi sẽ chia sẻ nếu có ai khác xem qua bài đăng này:

Chế độ thư được mở khi nhấn vào ô bảng nhưng sẽ loại bỏ ngay lập tức.Trong trường hợp của tôi, mã này gây ra sự cố:

[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont systemFontOfSize:17.0]]; 

Tôi đã xóa nó và mọi thứ hoạt động!

3

Bạn có thể tránh vấn đề này với một số phân lớp phụ. Tôi đã có cùng một vấn đề, và trong trường hợp của tôi là thủ phạm là:

[[UISearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)]; 

tôi đã sử dụng một lớp con của UISearchBar dù sao, vì vậy tôi đã thay đổi đó để:

[[KA_SearchBar appearance] setSearchTextPositionAdjustment:UIOffsetMake(15.0f, 0.0f)]; 

Đó là giải quyết các vấn đề đối với tôi. Chỉ được thử nghiệm trên iPhone 5s, iOS 7.0.3.

+0

Radar'd là rdar: // 15461545 –

0

Trong trường hợp của tôi, mã sau sẽ gây ra cùng một sự cố trên máy ảnh hoặc mô phỏng 64bit. Hy vọng giúp đỡ ai đó gặp vấn đề này.

if ([UITableViewCell instancesRespondToSelector:@selector(setSeparatorInset:)]) { 
    [[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsZero]; 
} 
0

Vấn đề này xảy ra trong không khí iPad (64 bit) khi ứng dụng không tuân thủ kiến ​​trúc 64. Vấn đề tôi gặp phải là mỗi bộ chọn UIAppearance mà cố gắng sử dụng UIOffsetMake/UIOffsetZero không hoạt động đúng! dụ

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(1.0, 1.0) forBarMetrics:UIBarMetricsDefault]; 

hoặc

[[UITableViewCell appearance] setSeparatorInset:UIEdgeInsetsMake(0, 5, 0, 5)]; 

Tôi nghĩ rằng một lỗi của nó trong mã Apple và tôi đã cố gắng vài điều nhưng không hoạt động. Tốt hơn nếu bạn có thể nhận xét các địa điểm mà bạn setInsets trong bộ chọn UIAppearance

0

Tôi đã gặp lỗi tương tự khi sử dụng SLComposeViewController để chia sẻ với Facebook hoặc Twitter bằng cách sử dụng trình mô phỏng 64 bit hoặc iPhone 5s, sau đó tôi xóa mọi dòng mã rằng việc sử dụng "xuất hiện, ví dụ [UITableViewCell xuất hiện] hoặc [UIBarButtonItem xuất hiện], và mỗi chạy ok.

0

tôi cập nhật xcode lên phiên bản 5.1 và nó làm việc ok bây giờ.

+0

Bạn có thể cung cấp thêm chi tiết? – bjb568

+0

bạn chỉ cần tải xuống và cài đặt xcode 5.1. – user3427846

0

NSXPCConnectionInterrupted = 4097. tôi sẽ có bạn mã thử lại lệnh vì lỗi có vẻ là thoáng qua.