2010-02-02 45 views
0

我有一個導航控制器內的選項卡欄控制器。我想創建一個視圖,只有一個320x411的圖像(離開狀態欄和標籤欄)。創建一個錯誤處理UIView覆蓋

圖像顯示網絡連接錯誤。

目前我使用這個代碼,在標籤欄項目的個人觀點的viewDidLoad:

if (appDelegate.hasInternetAtStart == NO) { 
    CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f); 
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
    [myImage setImage:[UIImage imageNamed:@"NetworkError.png"]]; 
    myImage.opaque = YES; 
    [self.view pushViewController:myImage animated:NO];  
    [myImage release]; 
} 

但是這讓下面的元素被感動和訪問。

是要顯示錯誤的正確方法,還是應該選擇另一種方法。

我想一個單一視圖,將覆蓋在標籤欄項目中的所有其他意見,可以在可能的話應用代理設置...

+0

我想你應該使用UIActionSheet或UIAlertView來顯示錯誤消息。不知道是否可以自定義顯示圖像。請參閱developer.apple.com上的UICatalog示例應用程序。 – DyingCactus 2010-02-02 18:14:06

+0

Facebook應用程序使用UIImage填充整個屏幕來顯示網絡連接錯誤,我在想同一行... – Dot 2010-02-03 04:23:29

回答

2

你試過從應用程序內啓動您的UIImageView代表?

這樣做,使視圖和圖像成爲整個屏幕的大小。通過使用PNG透明圖像,您的錯誤將顯示,而不允許用戶觸摸NavController標籤欄。

如果你想從App Delegate外部觸發這個,你可以使用NSNotificationCenter在App Delegate中創建一個響應者。

// Register listener 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNetworkError) name:@"showNetworkError" object:nil]; 

而且從的appDelegate這樣的外部調用它:

// Post notification 
[[NSNotificationCenter defaultCenter] postNotificationName:@"showNetworkError" object:self]; 

注意的是,選擇「showNetworkError」是顯示錯誤的UIImageView函數的名稱。

+0

不錯!我的工作是覆蓋整個屏幕。謝謝.. 現在我試圖用狀態欄+導航欄+標籤欄控制器來顯示它。但我的工作至少... – Dot 2010-02-09 16:38:44