我的问题是iOS SDK5.1中基于UISplitView
的应用程序。
问题出现在这里:
masterVC在splitview.delegate
中将自己设置为-(void)viewDidLoad
,我怀疑为时已晚,因此无法及时调用委托方法。
所以我尝试在-(void)prepareForSegue
...中设置委托,这不会改变行为。
答案 0 :(得分:0)
在App Delegate的didFinishLaunchingWithOptions方法中设置UISplitViewController委托。
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UISplitViewController *splitViewController = (UISplitViewController*)self.window.rootViewController;
UITableViewController *yourViewController = (UITableViewController*)[splitViewController.viewControllers objectAtIndex:0];
splitViewController.delegate = yourViewController;
}
确保yourViewController符合UISplitViewControllerDelegate协议。
编辑:此外,如果您的MasterViewController嵌入在导航控制器中,您将不得不先访问UINavigationController然后访问它的topViewController来访问它。