私はUIViewをスライドさせるための汎用コントローラーを開発し、UIViewController(および明らかにサブクラス)を管理し、UIViewControllerのサブクラスがこのメソッドに応答する場合にのみ特定のメソッド(フリーズ)を呼び出す必要があります。
-(void)freezeRootViewController
{
if([_rootViewController respondsToSelector:@selector(freeze)])
[ ((id) _rootViewController) freeze];
}
_rootViewControllerのクラスはわかりませんが、UIViewControllerのサブクラスであることはわかっています。このため、_rootViewControllerをIDにキャストしようとしましたが、コンパイルできません。
環境:XCode 4.5.1、iOs 4.3+、ARC
エラー:「セレクター「フリーズ」のインスタンスメソッドがわからない」
注:開発者に_rootViewControllerに特定のUIViewControllerサブクラスを使用するように強制することはできません。