問題タブ [popviewcontrolleranimated]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3311 参照

ios - viewController の dealloc は、navigationController popViewControllerAnimated が呼び出されたときに呼び出されない

私は MyViewController を持っています。これは UIViewController に基づいており、次のコードのように使用しました。

MyViewController *nextViewController = [[MyViewController alloc] init]; [self.navigationController pushViewController:nextViewController animated:YES]; [nextViewController release];

MyViewController には、ユーザー イベントを使用して、次のコードを記述します。

[self.navigationController popViewControllerAnimated:YES];

ここで、MyViewController の dealloc が呼び出されないことがわかりましたが、アプリをバックグラウンドに切り替えると、たとえばホーム ボタンを渡すと、dealloc メソッドが呼び出されました! これは大問題です!ユーザーが MyViewController に移動し、何度も何度も戻ったときに、多くの MyViewController が解放されないことがあり、アプリがバックグラウンドに移行したときにのみ、大量のメモリが解放される可能性があります。

だから、誰でもこれについて私を助けることができます、ありがとう!

0 投票する
1 に答える
2640 参照

ios - iOS:別のViewControllerからpopViewControllerAnimatedでviewWillDisappearが呼び出されない

私はiOS開発に比較的慣れていないので、ViewControllerのポップに問題があります。UIViewControllers戻るボタンが押されたときに、ナビゲーションスタックから2つ(またはそれ以上)をポップする必要があります。それらすべてをアニメーション化したくないので、最初にアニメーション化されていない最後の1つを除いてすべてをポップし、次にアニメーション化された最後の1つをポップしますが、最後の1つ-viewWillDisappearだけが呼び出されるわけではありません。これが私のコードです(これらはUIViewController他のすべてが拡張されたスーパーから呼び出されています):

誰かが私がここで間違っていることを知っていますか、それとも私が必要なことを正しく達成する方法を教えてもらえますか?

0 投票する
1 に答える
205 参照

objective-c - どのUIViewControllerがpopViewControllerAnimatedと呼ばれますか?

私が3つUIViewControllersのA、B、Cを持っているとしましょう。

ここで、AからBまたはCを呼び出すとしましょう。セグエではなく、コードでそれらをインスタンス化し、にプッシュしますnavigationController

BまたはCが完了すると、呼び出しpopViewControllerAnimated:てAに戻ります。

この時点で、実際に最後に使用したプロパティに応じて、BまたはCのいずれかのプロパティにアクセスしたいと思います。

UIViewController最後がタイプBまたはCの場合に情報を提供するメソッドまたはプロパティはありますか?

BとCのプロトコルを定義し、Aをとして設定できることはわかっていますが、delegate他の何かを探していました...

0 投票する
1 に答える
1249 参照

ios5 - UINavigatorController popViewController:animated は、iOS 5.1 では奇妙な動作を示しますが、iOS 6 ではそうではありません

iOS アプリで説明できない奇妙な動作を発見しました。

UITabBarController サブクラスに埋め込まれた標準の UINavigationController を使用しています。

NavigationController に ViewController をプッシュすると、アニメーションは問題ありません。ただし、ViewController がランドスケープでポップされると、期待される右から左への標準的な動作とは対照的に、ポップ アニメーションは画面の上端から下端まで発生します。

さらに奇妙なのは、TabBar がアニメーション化されたトランジションに含まれていることです。これは、Portrait モードには当てはまりません。

これは iOS 5 デバイスでのみ発生し、現時点ではなぜこれが発生するのかわかりません。

0 投票する
1 に答える
680 参照

ios6 - IOS 6.0 + popViewControllerAnimated を使用してコントローラーにポップバックするときに supportedInterfaceOrientations が適用されない

解決済み:

この問題を回避する唯一の方法は (私が知る限り)、自由に回転するビュー コントローラーを階層の外に出すことです。これを行う 1 つの方法は、自由に回転するコントローラーをアプリ デリゲート ルートコントローラーに一時的に割り当てることです。このように、回転しても階層の残りの部分は影響を受けません。


プッシュするコントローラーがあり、supportedInterfaceOrientations が適切に呼び出され、値が適切に返されます。縦向きを強制しています。ナビゲーターとタブ コントローラーをサブクラス化したので、関連するメソッドが正常に呼び出されます。実際、この1つの問題を除いて、すべてが完全に機能します:

縦向きのみをサポートする特定のコントローラーから、すべての向きをサポートする別のコントローラーをプッシュします。

この 2 番目のコントローラーで、デバイスを横向きに変更し、横向きモードでこのコントローラーをポップすると、次のようになります。

元のコントローラーでは、supportedInterfaceOrientations は正常に呼び出され (Autorotate が YES を返す必要があります)、以前と同じ向きの値 (縦向きのみ) が返されます。ただし、ポートレートのみを渡しますが、コントローラーのコンテンツはまだランドスケープです。

ブレークポイントを使用して、supportedInterfaceOrientations が毎回呼び出されることを確認しました。ただし、子コントローラーのランドスケープ コントローラーがポップされた場合、戻り値は適用されません。

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]; を追加してみました。viewWillAppear に表示されますが、1) 機能しません。また、2) これでアプリが拒否されることはありませんか?

どうすればこの問題を解決できますか?

編集、ここにいくつかのコードがありますが、私の問題は非常に基本的です。

コントローラー 1 では、これらは常に呼び出されます。

次に、ある時点で 2 番目のコントローラー (ビデオ プレーヤー) を押します。

コントローラ 2 で:

繰り返すステップ:

1) app を起動すると、コントローラ 1 がポートレート モードで表示されます。これはマスクが返されたためです。しかも回転しません。

2) コントローラー 2 を押します (またはモーダルで提示することもできます)。

3) これが回転します。横向きモードに回転します。

4) ポップコントローラー 2.

5) コントローラー 1 はランドスケープ モードになりますが、shouldAutorotate と supportedInterfaceOrientations が呼び出され、コントローラー 1 のコードに示すように値が返されます。

0 投票する
4 に答える
653 参照

objective-c - モーダルビューを閉じてビューコントローラーをポップした後、中間ビューコントローラーが一時的に表示されます

ビューコントローラーBにプッシュセグエを行うテーブルビューコントローラーAがあります.BはビューコントローラーCにモーダルセグエを行います.Cにボタンがあり、Cを却下する必要があります(前述のようにモーダルです) また、A に戻るように B のポッピングも行われます。C では、ボタンの押下を検出し、デリゲートを使用して B にコールバックし、これを使用してモーダル ビュー コントローラー C を閉じます。

次に、B はデリゲートを使用して A にコールバックし、A はこれを使用してスタックから B をポップします。

これですべて機能しますが、このすべての間に B が簡単に表示されるという非常に厄介な事実を除いて、B をまったく表示せずに C から A に「ポップ」できるようにしたいと考えています。上記の Animated パラメータに対して YES/NO の組み合わせを試し、popToRootViewControllerAnimated も試しましたが、うまくいきません :-(

誰にもアイデアはありますか?

0 投票する
2 に答える
2356 参照

ios - IOS popviewcontroller はナビゲーション バーを削除します

アプリでストーリーボードを使用しており、以前のビュー コントローラーに移動しようとしています。

それは正常に動作しますが、正しいviewcontrollerを提供しますが、そこからナビゲーションバーを削除し、プロジェクトの他の場所でそれを使用した理由がわかりません。問題なく動作し、私を夢中にさせています:D

一部のボディplzは助けてくれてありがとう。

0 投票する
1 に答える
181 参照

ios - popViewControllerAnimated:YES に戻るボタンが表示される

カスタム ナビゲーション バー - MyNavigationBar (UIView を拡張)を作成したアプリを作成しています。

MyNavigationBar.xib :

そのカスタムビューのペン先

MyNavigationBar.m :

次に、NavigationViewControllerの実装で、このコードを使用して上記のビューをnavigationBarに追加します。

NavigationViewController.m :

左ボタン ( MyNavigationBarのサブビュー) が押されたとき

と呼ばれます。

問題は、ポップ アニメーションの不具合が発生した場合、次のようになることです。

ここに画像の説明を入力ここに画像の説明を入力

戻るボタンは、すべてのアニメーション期間で表示され、その後消えます。

私はこれを試しましたが、何も起こりません:

0 投票する
3 に答える
104 参照

iphone - 委任が正しく機能しない (VC に popViewControllerAnimated を指示する必要があります)

保存ボタンがタップされたときに簡単protocolに通知できるように使用しているため、によって閉じることができます。delegateVC2view controllerpopViewControllerAnimatedVC1

VC2に確認する がprotocolあります。VC1

VC2.h

VC2.m

VC1.m

お役に立てれば幸いです。

0 投票する
1 に答える
151 参照

ios - 汎用/中央popViewControllerAnimatedメソッド

ちょっとした質問とシナリオがあります。

質問:[self.navigationController popViewControllerAnimated:True]を入手できますか

すべてのビューで繰り返される必要があることを意図した中央クラスから制御されています。

だからこれは私がこれまでに持っているものです:ビュー:

中央クラス:

setGenericBackButtonは次のことを行います。

backButtonActionは行います:

不可能なことをしようとしてコードの行を保存しようとするのは怠惰ですか、それとも実際にこれを行うことができますか?私はこれをもっとよく説明できてうれしいです。