我很困惑你的問題在哪裏。你想做什麼是可能的,應該是直截了當的。如果您的問題是Next視圖沒有被推送,因爲在popoverController中,您無權訪問self.navigationController
。如此簡單的解決方案,創建一個UINavigationController變量並將navigationController傳遞給您的popover或使用通知來傳遞推回到您的AppDelegate的視圖。
編輯
您可以使用此偵聽通知:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(popOverViewControllerSelected:) name:@"popOverViewSelectedViewToPush" object:someObjectTellingYouWhatViewToPush];
然後用它來發送通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"popOverViewSelectedViewToPush" object:@"ViewController1"];
的選擇將是你的函數名(我只是把一個描述性的名字「popOverViewControllerSelected」)和對象需要是什麼viewController的信息推(即1,2,3或@「view1」)。然後,你將需要:
- (void)popOverViewControllerSelected:(id)sentObject
{
// If your passing an NSNumber could use a switch
switch ((int)sentObject) {
case 0:
//Push This view
break;
case 1:
//Push that view
break;
case 2:
//Push someother view
break;
default:
break;
}
}
我說的是另一種方式是在你popOverViewController.h加入
@interface .........
{
UINavigationController *navController;
}
@property (nonatomic, retain) UINavigationController *navController;
在你popOverViewController.m添加:
@synthesize navController;
然後在哪裏添加popOverViewController只需添加:
[popOverViewController setNavController:self.navigationController];
現在在你的PopOverViewController您可以撥打:
[navController pushViewController:someViewController animated:YES];
但我建議做第一個選項。
除非您爲它創建自己的用戶界面,否則不需要創建PopOverController的子類。 – twilson 2012-02-07 16:58:21
看看蘋果的iPad人機界面指南文檔,它確實應該完全足以實現你想要的。它似乎微不足道,除非我失去了一些東西? – twilson 2012-02-07 16:59:29