2 つの MVC の間でセグエしたいオブジェクトがあります。最初の MVC のプロパティはオブジェクトと一緒にセグされますか、それともメソッドだけですか。IE: 値が 5 の int プロパティがあり、オブジェクトを渡すセグエを実行する場合。私の新しい MVC は、このプロパティと値 5 にアクセスできますか? それとも、渡されたオブジェクト メソッドにのみアクセスできますか?
2 に答える
いいえ。悲しいことに、プロパティは魔法のように単独でセグエを通過することはありません (まだ)。
代わりにすべきことはprepareForSegue:sender:
、View Controller でオーバーライドすることです。次に、宛先のView Controllerにアクセスできます[segue destinationViewController]
。ビュー コントローラーへの参照を取得したら、そのプロパティを設定できます。
プロパティは、セグエの宛先 viewController に渡されたり設定されたりしません。目的のviewControllerでオブジェクト(クラスのインスタンス)またはいくつかの単純な変数を使用する場合は、目的のviewControllerクラスでそのプロパティを定義してから、に設定する必要がありますprepareForSegue:
。たとえば、以下のコードビットでは、目的のviewControllerにはプロパティ「sectionToShow」とそのプロパティのセッターが呼び出されています。
もう 1 つの方法は、宛先の viewController のデリゲートを定義し、同じ方法で設定することです。その後、宛先の viewController はメソッドを呼び出してデリゲートのプロパティにアクセスできます。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSString* identifier = segue.identifier;
if([identifier isEqualToString:@"userGuideSegue_home"]){
UserGuideViewController* vc = segue.destinationViewController;
[vc setSectonToShow:@"Home Screen"];
}
}