简体   繁体   中英

Adding storyboard to existing project

I have created a project without support of storyboards, but later I have added a storyboard. Storyboard work well and i see it's contents when loading app in emulator.

Then I created a view controller (UIViewController), and my problem is I can't bind any control from storyboard to my controller.

So my question is how to connect my controller with storyboard.

Those exact steps (I am using XCode 4.5 and iOS 6.0 ):

  1. Add new storyboard to the project by File->New->File...->Userinterface->storyboard
  2. Go to project summary and select MainStoryboard and select the storyboard name you just created.
  3. From AppDelegate.m file in method didFinishLaunchingWithOptions, comment everything except last statement which returns YES.

That is all. Now you should see your Initial view as you launch the project.

For XCode 6 and iOS8 beta2:

  1. Create a Storyboard file (let's call it Main.storyboard). Pick an iPhone or iPad for device type.
  2. In the blank Main.storyboard file, drag a UIViewController from the object library.
  3. If the storyboard is intended to be used as a universal storyboard, then switch to the File Inspector (in the Utilities section on the right), and check mark "Use Size Classes".
  4. Select the View Controller in the storyboard and switch to the Identity Inspector (in the Utilities section on the right), and type in the "Class" field the name of your View Controller.
  5. Find the file "info.plist" in the "Supporting Files" folder on the left in the Navigator section.
  6. Add a row by clicking on the '+' sign to the right of the "information property list" key.
  7. Select "Main storyboard file base name" key, and type the name of your storyboard file, in the "Value" field (in this case it will be called "Main")
  8. In AppDelegate.m/AppDelegate.swift, in the method/func "application:didFinishLaunchingWithOptions:" remove all code except "return YES" (for Objective-C), or "return true" for Swift.

I've found answer on my own question. It's very simple: I should open storyboard, select view controller (it's visual representation on storyboard), then go to identity inspector and replace class UIViewController to your controller class

  1. Add Main.storyboard

  2. Add row in Info.plist > Main storyboard file base name:Main

  3. Edit code:

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //Override point for customization after application launch. return YES; }

Have you checked if the controls you want to connect have an corresponding IBOutlet or IBAction in the controller? Then you should be able to connect them as usual.

Don't forget to check the main.m:

#import <UIKit/UIKit.h>
#import "YourAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegate class]));
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM