1

我想從我的視圖中呈現模態視圖。演示者視圖已經以自定義視圖的模式顯示。我的問題是,我無法看到呈現的新模態視圖上的「完成」按鈕。以下是我的代碼。我錯過了什麼嗎?'完成'按鈕在模態視圖中不可見

UIViewController *aViewController = [[UIViewController alloc] init]; 
    UINavigationController *aNavigationController = [[[UINavigationController alloc] initWithRootViewController:aViewController] autorelease]; 
    [aNavigationController.navigationBar setBarStyle:UIBarStyleBlack]; 
    UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissMe)]; 
    [aNavigationController.navigationItem setLeftBarButtonItem:aBarButtonItem]; 
    MyView *aView = [[MyView alloc] initWithFrame:self.view.frame]; 
    [aViewController.view addSubview:aView]; 
    [self presentModalViewController:aNavigationController animated:YES]; 
    [aViewController release]; 

- (void)dismissMe { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

enter image description here

+0

我不認爲堆疊這樣的視圖控制器是好設計......但你的問題的答案在於navigationController.view.frame。嘗試明確地設置它...如果可能的話,添加一個圖片的問題。 – Legolas

+0

我通過將框架設置爲CGRectMake(0,0,320,400)來做到了這一點,但它沒有幫助。 – Abhinav

+0

請添加照片。可能是一個查看屏幕。那幀尺寸呢? – Legolas

回答

2

如果我理解小別這個問題,你可以嘗試這樣一個解決方案:
寫這在模態視圖控制器的viewDidLoadinit方法,你想從實際的視圖顯示:

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self selector:@selector(dismissMe)]; 
self.navigationController.leftBarButtonItem = done; 

並實施你dismissMe方法。
相反,在演示控制器寫這要出現新的模態控制器:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controllerYouWantToShow]; 
[self presentModalViewController:navController animated:YES]; 

Obviusly,controllerYouWantToShow是一個指針/變量指向你想顯示你的視圖控制器......我通常這樣做解決像你這樣的問題...但是,檢查代碼,因爲我沒有測試過它:)
希望它有幫助!

+0

謝謝 - 這幫了我。我試圖展示一個擴展UINavigationController的控制器,而不是簡單地使用initWithRootViewController將該調用包裝到通用導航控制器中......現在完成按鈕正在顯示! – DiscDev