では、スイッチは数値のみを評価できます。私は、例えば、オブジェクトのクラスを比較するためにそれを使用できるように、このような何かが欲しい:では、単に数値ではなくクラスを評価するswitch文を作成するにはどうすればよいですか? Obj-Cのスイッチ
switch (currentSubViewController.class)
{
case UITableViewController.class :
<do stuff>
break;
case UICollectionViewController.class :
<do stuff>
break;
}
は、これを実現する方法はありますか?私は実際にスイッチを使用できるようにしたいのですが、これは異なるケースで読みやすく、今後どのようなケースでも追加することができるからです。何か案は?
iPhoneを使用していると仮定すると、それぞれのサブビューに対して別々のviewControllerを使用していますか? –
はい、それぞれのビューコントローラは1つです。実際、どのビューコントローラが現在表示されているのかを見たいと思います。私は簡単にそれを追跡することができます(グローバル、または何かなど)、int currentlyPresentedController = whateverなどの数値値を使用して、私はコントローラを切り替えるたびにそれを手動で値を設定するだけで、私はそのソリューションを非常に信頼していない値を設定することを忘れると、物事が悪くなる可能性があります。また、値は何らかの形で表示されている実際のコントローラと同期しなくなる可能性があります。より信頼できると思います。クラスを直接テストすることができます。 – TraxusIV
明確にするために、この背後にある当初の動機は、「サイクル」ボタンがユーザによって押されたときに表示される一連のビューコントローラを循環することができるようにすることでした。クラスAのコントローラが現在表示されている場合は、Bに切り替えます。Bが表示されている場合はCなどに切り替えます。 – TraxusIV