我想知道是否有人可以向我解释这一点。我正在构建一个使用故事板的通用应用程序。 iPhone版本的导航控制器带有主列表视图,然后是子列表视图(都是桌面视图控制器)如何修复iPad上的警告segue
iPad应用程序使用分离视图控制器来实现与iPhone相同的功能(主列表,但是当使用“替换”segue过渡到分割视图控制器上的新细节视图时,我必须将新的细节视图嵌入到自己的导航控制器中,而我并不需要要做到这一点在iPhone上(它已经是一个导航控制器内(希望这是有道理的)
我的代码(工作)最终看起来就像这样:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NotesListViewController *listNotesView;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
listNotesView = [[segue destinationViewController] topViewController];
} else {
listNotesView = [segue destinationViewController];
}
if ([segue.identifier isEqualToString:@"NotesByDate"]) {
[listNotesView setGroupType:@"date"];
} else if ([segue.identifier isEqualToString:@"NotesByTopic"]) {
[listNotesView setGroupType:@"topics"];
} else if ([segue.identifier isEqualToString:@"NotesBySpeaker"]) {
[listNotesView setGroupType:@"speaker"];
}
所以......问题是,IF语句的第一个条件,产生报警(兼容的指针类型从UIViewController中分配给NoteListViewController)。但是,它不是一个UIViewController,它是一个UITableViewController。在iPhone版本中,它会成为UIView,但我在这里专门检查iPad。
就像我说的,它的工作原理,所以也许这是不是一个真正的问题,但我是一个有点不断出现和存在不确定如何/如果我能修好它警告恼火。
我会尝试在一个位后的故事板的图片,希望这有助于解释这一些。
感谢您的解释和解决方案!这很有道理。 – shoesole