2013-04-16 22 views
5

Tôi có một nút trong ứng dụng để hiển thị SLComposeViewController để sử dụng với Twitter. Khi xem được trình bày nó hoạt hình chính xác và biến mất. Tôi đã thấy rằng khi nó biến mất nó được gửi đến mặt sau của quan điểm hiện tại và tôi không có cách nào để đưa nó trở lại. Tôi đã thử gửi thủ công tất cả các chế độ xem trên đầu để quay lại mã mà không có may mắn. Tôi cảm thấy có một cái gì đó về cơ bản sai với ứng dụng của tôi cho điều này xảy ra như hành vi này được nhìn thấy ở bất kỳ cấp độ để điều khiển chuyển hướng trong ứng dụng. Dưới đây là một ảnh chụp màn hình của SLComposeViewController là Navigation Bar trong ứng dụng, tôi đã thực hiện quan điểm của ViewController có một giá trị Alpha của 0.0f để minh họa cho quan điểm của tôi:Chế độ xem SLComposeViewController được gửi ngược lại trong ứng dụng và không phản hồi

enter image description here

Tôi thực sự không biết những gì đang xảy ra ở đây và bất kỳ trợ giúp sẽ được đánh giá cao. Mã Tôi đang sử dụng để trình bày các SLComposeViewController là khá chuẩn và tôi đã thử nghiệm nó trong ứng dụng khác và hoạt động tốt:

NSString *message = [NSString stringWithFormat:@"#%@", [twitterInfo objectForKey:@"hashtag"]]; 

if ([appDelegate isSocialAvailable]) { 
    // code to tweet with SLComposeViewController 
    SLComposeViewController *twitter = [[SLComposeViewController alloc] init]; 
    twitter = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
    [twitter setInitialText:[NSString stringWithFormat: @"%@", message]]; 
    [self presentViewController:twitter animated:YES completion:nil];   
} 
+0

Bạn có chắc chắn mã này được gọi là từ mainThread? Nếu không có một số điều mơ hồ có thể xuất hiện. Bạn có bất kỳ mã nào loại bỏ VC không? –

+0

Vâng, đó là trong chủ đề chính, tôi đã cố gắng chạy mã này trên Root của NavigationController trong ứng dụng với cùng một lỗi. – SamRowley

+0

vì vậy '[self.navigationController presentViewController: animated: completion:];' không hoạt động? –

Trả lời

1

Cảm ơn bạn đã đăng bài này, tôi đã có điều tương tự xảy ra vì tôi đã thêm một CAShapeLayer vào cửa sổ của tôi cho một hiệu ứng gradient. Bài đăng của bạn đã giúp tôi hiểu rằng đây là vấn đề.

Có vẻ như điều này đang xảy ra là vì họ đang thêm lớp của chế độ xem vào lớp con của cửa sổ - tại chỉ mục 0 tôi có thể thêm! Điều này trái ngược với những gì bạn mong đợi, đó là họ sẽ thêm quan điểm của họ như là một subview vào khung nhìn của trình điều khiển xem trình bày.

Họ phải nghĩ rằng mọi người không thêm lớp vào cửa sổ của họ và họ muốn đảm bảo rằng họ không cạnh tranh với khung nhìn của bạn. Tại sao họ đưa nó vào chỉ số 0 chỉ phải vì ai đó có thói quen làm -[CALayer insertLayer:layer atIndex:0] tôi cho là vậy.

Tôi không chắc chắn nhưng tôi đoán đây có thể là trường hợp với bất kỳ bộ điều khiển chế độ xem phương thức nào.

Việc sửa chữa là khá đơn giản:

[viewController presentViewController:facebookViewController 
          animated:YES 
          completion:^{ 
    facebookViewController.view.layer.zPosition = 1000; 
}]; 
+0

Cảm ơn bạn đã trả lời, tôi rất vui vì tôi có thể giúp bạn trên con đường của bạn, tôi đã thay đổi nó để câu trả lời của bạn được chấp nhận vì nó chi tiết hơn tôi. – SamRowley

0

Sau một tuần xé tóc của tôi ra để tìm một giải pháp này tôi đã tìm thấy các vi phạm mã kiểm tra vào ứng dụng, một mẹo nhỏ để làm tròn các góc của toàn bộ ứng dụng, cũng làm cho nó có vẻ như các góc được làm tròn bằng cách thêm một hình ảnh đó:

UIImage *bottomOverlayImage = [UIImage imageNamed:@"bottom_overlay.png"]; 
CALayer *bottomOverlay = [CALayer layer]; 
bottomOverlay.frame = CGRectMake(0, self.window.frame.size.height - 9, bottomOverlayImage.size.width, bottomOverlayImage.size.height); 
bottomOverlay.contents = (id)bottomOverlayImage.CGImage; 
bottomOverlay.zPosition = 1; 
[self.window.layer addSublayer:bottomOverlay]; 

Nếu ai có thể cho tôi biết tại sao mã này sẽ lộn xộn lên Chế độ xem Twitter sẽ thực sự hữu ích để tham khảo trong tương lai. Mã này được đặt trong ủy nhiệm ứng dụng và chạy trên lần tải đầu tiên.

Các vấn đề liên quan