2010-07-16 9 views
8

Vì vậy, tôi đã nâng cấp mã lên ipad (tức là được chuyển đổi thành ứng dụng toàn cầu). Tuy nhiên, kết xuất UIAlertview dường như bị tắt cho IOS4. Thay vì được định vị ở giữa, nó nhảy lên và được hiển thị trên đầu, với một nửa hộp bị cắt. Cùng đi với định hướng phong cảnh.iphone to ipad, iphone 4 vấn đề về uialertview

Tôi hiểu rằng UIalertview luôn được đặt ở giữa? Tôi đã xem xét mã và tôi không thiết lập khung/vị trí ở bất kỳ đâu trong mã. Điều này chỉ xảy ra cho 4.0, trên cả iphone 4 và itouch chạy 4.0. Mọi phiên bản khác đều tốt, kể cả ipad. Có suy nghĩ gì không?

Cảm ơn.

+0

tạo của bạn trông như thế nào? bạn có một tiêu đề và nội dung hay chỉ một hay cái khác? tôi đã thấy điều này và cuối cùng cũng phải điều chỉnh khung hình sao cho bạn thử di chuyển khung? – AtomRiot

+0

Tôi đang thực sự gỡ lỗi này cho người khác. Bằng cách tạo, bạn có nghĩa là phân bổ và khởi tạo? Tôi nghĩ nó có cả tiêu đề và nội dung. Tôi đã xem xét việc khởi tạo và không thấy bất kỳ việc sử dụng khung hình nào. Tôi sẽ kiểm tra lại. Bằng sự tò mò, điều này có hiển thị chỉ trên 4.0 chứ không phải các phiên bản khác cho bạn và chỉ sau khi nâng cấp lên phổ dụng? – user396004

Trả lời

1

Có vẻ là một lỗi. Tôi cũng gặp sự cố trên iPad với iOS 3.2.

Giải pháp:

a) Kiểm tra trạng thái ứng dụng của bạn: Trong iOS 4 chỉ cần sử dụng

[UIApplication sharedApplication].applicationState 

Cũ hơn iOS: Lưu trữ nhà nước ứng dụng của bạn bằng tay:

-(void)applicationWillResignActive:(UIApplication *)application 
{ 
    self.appIsInBackground = YES; 
} 

-(void)applicationWillTerminate:(UIApplication *)application 
{ 
    self.appIsInBackground = YES; 
} 

-(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    // Open your UIAlert here if self.appIsInBackground == YES; 

    self.appIsInBackground = NO; 
} 

b) mở UIAlert sau khi ứng dụng đã hoạt động, như được hiển thị ở trên trong các bình luận.

0

Cảnh báo của bạn có thêm bất kỳ Textfield nào không?

Bởi vì trong 4.0+ iOS cuộn cảnh báo đến phần hiển thị nếu bạn có một trường văn bản trong chế độ xem cảnh báo.

0

Tôi có cùng một vấn đề với iPad 3.2 khi ứng dụng từ chức hoạt động và trong thời gian đó, cảnh báo được hiển thị rằng cảnh báo sẽ được hiển thị ở góc trên cùng bên trái. Vì vậy, tôi đã cố định bằng cách sử dụng mã sau trong phương thức - (void) applicationDidBecomeActive: (UIApplication *) application

//Check that key window is alert view 
if ([[[UIApplication sharedApplication].keyWindow description] hasPrefix:@"<_UIAlertOverlayWindow"]) { 
    //Yes then check for subviews tht are alertViews 
    UIWindow *alertViewWindow = [UIApplication sharedApplication].keyWindow; 
    NSArray *subViews = [alertViewWindow subviews]; 
    for (UIView *subview in subViews) 
    { 
     if ([subview isKindOfClass:[UIAlertView class]]) 
     { 
      //Retain it 
      UIAlertView *alertView = (UIAlertView *)[subview retain]; 
      //Now dismiss it and then show it again 
      [alertView dismissWithClickedButtonIndex:0 animated:NO];//Here ClickedButtonIndex must be according to cancel button 
      //Show the alert view again 
      [alertView show]; 
      //Release previsous retained object 
      [alertView release]; 

     } 
    } 
}