私は、Apple独自のモーダルビューコントローラ(UIViewControllerサブクラスとして実装しています)と非常に似ているコンテナ内にビューコントローラを表示するカスタムセグを作成しました。-segueForUnwindingToViewController:fromViewController:identifier:呼び出されていない
私は今カスタムunwind segueを作成しようとしていますが、メソッド-segueForUnwindingToViewController: fromViewController: identifier:
を呼び出す方法はありません。
私は正しいビューコントローラ(このモーダルを提示したもの)を指し示すことができるので、私のコンテナに-viewControllerForUnwindSegueAction: fromViewController: withSender:
を実装しましたが、私のカスタムunwind segueのために求められるメソッドはどこでも呼び出されません。
このモードを解除する唯一の方法は、-returned:
メソッドで行うことです。
誰でもカスタムリライングセグを使ってこれを正常に実行できましたか?
EDIT: もう少しコードとコンテキスト
マイアンワインドビューコントローラはないプログラムで、ストーリーボードで構成されています。
私は私のコントローラでリラックスseguesに関連するコードのこれらの作品があります。私はここに私のカスタムモーダル(-dismissModalViewControllerWithCompletionBlock:
)を解任するためのカスタムメソッドを使用してい
PresenterViewController.mを。ここで
- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController
fromViewController:(UIViewController *)fromViewController
identifier:(NSString *)identifier {
return [[MyModalUnwindSegue alloc] initWithIdentifier:identifier
source:fromViewController
destination:toViewController];
}
-(IBAction)returned:(UIStoryboardSegue *)segue {
if ([segue.identifier isEqualToString:@"InfoUnwindSegue"]) {
[self dismissModalViewControllerWithCompletionBlock:^{}];
}
}
MyModalViewController.m
私は私がリラックスするべきであるビューコントローラを指すように-viewControllerForUnwindSegueAction: fromViewController: withSender:
を使用しています。私は期待していた
- (UIViewController *)viewControllerForUnwindSegueAction:(SEL)action
fromViewController:(UIViewController *)fromViewController
withSender:(id)sender {
return self.myPresentingViewController;
}
挙動はMyModalViewControllerは巻き戻しを処理し、その後、このビューコントローラは-returned:
が呼び出される前に、彼の-segueForUnwindingToViewController: fromViewController: identifier:
メソッドが呼び出されていたはずですビューコントローラを指すように呼ばれていたということでした。
今すぐ-segueForUnwindingToViewController: fromViewController: identifier:
が呼び出されることはありません。
私はすでに別の設定を試みたと言わなければなりません。どこでも、私は決して呼び出されないゆるやかなセグを返すために私の方法を入れました。私はナビゲーションコントローラーをサブクラス化して呼び出すことができますが、私のソリューションにどのように収まるかわかりません。
EDIT 2:追加情報
私はMyModalViewControllerが、私はそれが提示する通常のモーダルビューコントローラを却下したいときに呼び出さ彼-segueForUnwindingToViewController: fromViewController: identifier:
メソッドを持っていることをチェックしました。これは、彼が階層の一番上のUIViewControllerだからかもしれません。
これを確認した後、私はUINavigationControllerをサブクラス化し、代わりにこのサブクラスを使用してPresenterViewControllerを格納しました。彼の-segueForUnwindingToViewController: fromViewController: identifier:
メソッドが呼び出されていることに気付くのは驚きでした。
私は、コンテナーとして機能するビューコントローラーだけがこのメソッドを呼び出すと信じています。それは他のView Controllerを提示する唯一のものではないので、私にはほとんど意味をなさないものです。彼らの子供たちもそうしています。
このサブクラスでロジックを作成して、どのクラスを使用するかを選択することは、このクラスでは子どもが何をしたのか分かりません。
アップルフォーラムは、今すぐサポートが中止されています。誰かがこの作品の仕組みに関する情報を持っていれば助けてください!私はこれについての資料の欠如は、これがまだどれほど不安定であるかの良い指標であると思います。
あなたは現在表示したいのですか? –
これまでに試したコードを表示する必要があります。 – rdelmar
@rdelmar、ここにあります。特定のコードを見たいかどうか教えてください。 –