Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将iPad情节提要添加到现有iphone项目_Objective C_Xcode_Ipad_Storyboard - Fatal编程技术网

Objective c 将iPad情节提要添加到现有iphone项目

Objective c 将iPad情节提要添加到现有iphone项目,objective-c,xcode,ipad,storyboard,Objective C,Xcode,Ipad,Storyboard,我只为iphone/ipod用户创建了我的项目。现在我想让它也适用于ipad用户。我有两个故事板;3.5英寸和4英寸 以下是我的步骤: 1) 我创建了一个新的故事板。文件-新文件-用户界面-iPad故事板 2) 我将目标设备从iphone改为universal 3) 我在iPad部署信息部分设置了主情节提要 4) 最后,我复制了4英寸iphone故事板上的所有内容,并将其粘贴到新的ipad故事板上。(我没有更改任何内容,包括屏幕大小) 我试图在新的故事板上只放置一个视图控制器,但结果是一样的 然

我只为iphone/ipod用户创建了我的项目。现在我想让它也适用于ipad用户。我有两个故事板;3.5英寸和4英寸

以下是我的步骤:

1) 我创建了一个新的故事板。文件-新文件-用户界面-iPad故事板

2) 我将目标设备从iphone改为universal

3) 我在iPad部署信息部分设置了主情节提要

4) 最后,我复制了4英寸iphone故事板上的所有内容,并将其粘贴到新的ipad故事板上。(我没有更改任何内容,包括屏幕大小)

我试图在新的故事板上只放置一个视图控制器,但结果是一样的

然后我在iPad模拟器上运行并构建了我的应用程序。下面是一个错误:

2013-07-28 19:02:42.151 Test[40038:12203] *** Terminating app due to uncaught 
exception 'NSInvalidArgumentException', reason: '-[ViewController topViewController]: 
unrecognized selector sent to instance 0x7888940'
*** First throw call stack:
(0x1b02012 0x1573e7e 0x1b8d4bd 0x1af1bbc 0x1af194e 0x252b 0x2626 0x4b5157 0x4b5747   
0x4b694b 0x4c7cb5 0x4c8beb 0x4ba698 0x194cdf9 0x194cad0 0x1a77bf5 0x1a77962 0x1aa8bb6 
0x1aa7f44 0x1aa7e1b 0x4b617a 0x4b7ffc 0x1d5d 0x1c85)
libc++abi.dylib: terminate called throwing an exception
这在AppDelegate.m中

-(void)initializeStoryBoardBasedOnScreenSize {

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
{    // The iOS device = iPhone or iPod Touch


    CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;

    if (iOSDeviceScreenSize.height == 480)
    {   // iPhone 3GS, 4, and 4S and iPod Touch 3rd and 4th generation: 3.5 inch screen (diagonally measured)

        // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone35
        UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iphone35" bundle:nil];

        // Instantiate the initial view controller object from the storyboard
        UIViewController *initialViewController = [iPhone35Storyboard instantiateInitialViewController];

        // Instantiate a UIWindow object and initialize it with the screen size of the iOS device
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

        // Set the initial view controller to be the root view controller of the window object
        self.window.rootViewController  = initialViewController;

        // Set the window object to be the key window and show it
        [self.window makeKeyAndVisible];
    }

    if (iOSDeviceScreenSize.height == 568)
    {   // iPhone 5 and iPod Touch 5th generation: 4 inch screen (diagonally measured)

        // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4
        UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

        // Instantiate the initial view controller object from the storyboard
        UIViewController *initialViewController = [iPhone4Storyboard instantiateInitialViewController];

        // Instantiate a UIWindow object and initialize it with the screen size of the iOS device
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

        // Set the initial view controller to be the root view controller of the window object
        self.window.rootViewController  = initialViewController;

        // Set the window object to be the key window and show it
        [self.window makeKeyAndVisible];
    }

} else if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)

{   // The iOS device = iPad

    UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
    UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
    splitViewController.delegate = (id)navigationController.topViewController;

}
}

有人能解释出什么问题吗?

分割视图控制器中的最后一个对象不是UINavigationController。检查你的故事板

UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

谢谢你,帖木儿。我完全忘了我换了控制器。没问题。祝你好运,塔哈。