2012-09-11 137 views
0

我在製作iPad應用程序。導航控制器視圖作爲ViewController中的子視圖

我希望我的應用程序的設計包括屏幕的一部分iPhone的大小,這將有一個窗體風格的分組表視圖。用戶可以使用它來編輯/添加信息。

其中一個表格視圖的「按鈕」(行)將有一個披露圖標作爲附件視圖,當點擊時,我想滑動該表格的另一個視圖。

理想我想一個UINavigationController's視圖添加到屏幕上的部分(在視​​圖控制器的視圖)說:

CGRectMake(self.view.frame.size.width/2, 20, 320, 400); 

但隨着蘋果的文件說,你不應該使用的導航控制器這樣(作爲現有視圖控制器的子視圖)。

我能做些什麼來模仿或解決方法來獲得此?

回答

0

創建一個適合該區域的UIView,並讓該視圖託管表格以及任何你想要的東西。如果您需要按導航欄「推送」視圖,則可以使用視圖動畫或UIView的轉換方法。如果我這樣做了,我可以創建一個「助手」類來管理所有這些視圖和控件 - 或者至少是您現有類的一個類別 - 以避免混淆主類。

1

我已經看到它完成了,它確實會在你顯示的控制器上帶來一些關於viewWillAppear/willRotate/etc方法的小故障。

解決方法是在添加/刪除導航控制器時手動調用navigator控制器上的viewWillAppear/etc,但這不是最好的方法。

另一種方式去是顯示在非dismissable酥料餅,你可以通過實現UIPopoverController委託函數實現此控制器:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController { 
    return NO; 
} 

這將使得用戶無法通過單擊駁回在它之外。您可以通過酒吧按鈕項目(它將在旋轉後自動定位)或從矩形(您將不得不在旋轉後重新定位它)顯示彈出窗口,但您可以不顯示「彈出窗口方向箭頭」,使其成爲「懸停「在你的父視圖控制器上。

+0

它出現在屏幕上,但我無法調整它!我試着這樣:'UIViewController * editVC = [[UIViewController alloc] init]; editVC.tableView.frame = CGRectMake(0,0,320.0,480.0); UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:editVC]; navController.view.frame = CGRectMake(20.0,20.0,320.0,480.0); [self.view addSubview:navController.view];' –

+0

簡而言之,我已經看到了我的觀點......但我似乎無法將其調整到所需的尺寸。 –

相關問題