使用 iOS 7 编译和运行 - 在呈现模式视图控制器时,我收到警告消息:“不鼓励在分离视图控制器上呈现视图控制器”。我在使用 iOS 6 或更早版本时从未遇到过问题。任何人都可以显示在呈现模式视图控制器时是否有任何更改吗?
SearchViewController *controller1;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
controller1 = [[SearchViewController alloc] initWithNibName:@"SearchViewController-iPad" bundle:nil];
}
else
{
controller1 = [[SearchViewController alloc] initWithNibName:@"SearchViewController" bundle:nil];
}
controller1.delegate = self;
[[self navigationController] presentModalViewController:controller1 animated:YES];
*EDIT *这是代码有人能指出它的嵌套位置吗?
看起来它们是嵌套的,请建议如何使用子视图控制器模式进行链接。
(void)applicationDidFinishLaunching:(UIApplication *)application
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
self.loginRootviewController = [[MainViewController alloc] initWithNibName:@"MainViewController-iPad" bundle:nil];
}
else
{
self.loginRootviewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
}
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.loginRootviewController];
DDMenuController *rootController = [[DDMenuController alloc] initWithRootViewController:navController];
_menuController = rootController;
AppMainMenuViewController *leftController = [[AppMainMenuViewController alloc] init];
rootController.leftViewController = leftController;
self.loginRootviewController.delegateLogin = leftController;
self.window.rootViewController = rootController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
}
如果故事板不知道以任何方式将视图控制器连接回根视图控制器的任何 Segue,则视图控制器将被分离。
如果您使用情节提要,建议您通过 Interface Builder 创建一个 segue 并在代码中调用它,即使对于模态视图也是如此。
即使使用 XCode 4.6.x 和 iOS 6.x,您也会在构建时收到有关未附加视图控制器的警告。
如果您有两个故事板(一个用于 iPhone,一个用于 iPad),则可以为每个故事板命名相同的 Segue。每个故事板的 Segue 标识符只需是唯一的。因此,执行 segue (使用标识符执行Segue https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/performSegueWithIdentifier:sender:)使用相同的标识符可以将您带到 iPhone 上的一个位置和 iPad 上的另一个位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)