この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。
昔良くハマりましたので、今更ですが書き留めておきます。
具体的にはStoryboradで新規に画面を追加した後、当該画面用に準備したクラス(ViewController)をCustom Class のClass欄でプルダウンしても列挙されない、直接入力しても反映されないという現象です。
原因はユーティリティエリア下部のオブジェクト一覧で選んだオブジェクトと準備したクラス(ViewController)の構成が合っていないからです。当たり前で単純ですが、ついやってしまいます。
たとえば、Table View Controllerオブジェクトの画面なのに、
[code language=”objc”]
#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController
@end
[/code]
このようなUIViewControllerを継承したクラスを割り当てようとすると、Custom Classの設定で拒否されます。説明するまでもなく、この場合、
[code language=”objc”]
#import <UIKit/UIKit.h>
@interface MyViewController : UITableViewController
@end
[/code]
こちらが正しいです。
ちなみに、OutletでConnection張ろうとしても張れないケースも似たようなオチで、準備したクラス(ViewController)をCustom Classに割り当てる前だとうまくいきません。