タグ付けされた質問 「uinavigationcontroller」

UINavigationControllerクラスは、階層コンテンツのナビゲーションを管理する特殊なiOSビューコントローラを実装します。

14
iPhoneは最初のページでのみナビゲーションバーを非表示にする
ナビゲーションバーを非表示にして表示する以下のコードがあります。最初のビューが読み込まれると非表示になり、「子」が呼び出されると非表示になります。問題は、ルートビューに戻ったときに、それをトリガーして再度非表示にするイベント/アクションが見つからないことです... ルートページに手動でアクションを実行する「テスト」ボタンがありますが、見栄えがよくないので、自動にしたいと思います。 -(void)hideBar { self.navController.navigationBarHidden = YES; } -(void)showBar { self.navController.navigationBarHidden = NO; }

17
iOS 7のUINavigationControllerで戻るスワイプジェスチャーを無効にする方法
iOS 7では、Appleは新しいデフォルトのナビゲーション動作を追加しました。画面の左端からスワイプすると、ナビゲーションスタックに戻ることができます。しかし、私のアプリでは、この動作がカスタムの左メニューと競合します。では、UINavigationControllerでこの新しいジェスチャーを無効にすることは可能ですか?


12
Swiftの最初のViewControllerからナビゲーションバーを非表示にする方法は?
ナビゲーションバーを最初のViewControllerまたは特定のViewControllerから迅速に非表示にするにはどうすればよいですか? 私は次のコードを使用しましたviewDidLoad(): override func viewDidLoad() { super.viewDidLoad() self.navigationController?.isNavigationBarHidden = true } そしてまたviewWillAppear: override func viewWillAppear(animated: Bool) { self.navigationController?.isNavigationBarHidden = true } どちらのメソッドも、すべてのViewControllerからナビゲーションコントローラを非表示にします。

25
ナビゲーションベースのアプリでプッシュアニメーションとポップアニメーションを変更する方法
ナビゲーションベースのアプリケーションがあり、プッシュアニメーションとポップアニメーションのアニメーションを変更したい。どうすればいいですか? 2018年を編集 この質問には多くの回答があり、かなり前からありますが、私が今最も関連性があると思うものへの回答を再選択しました。他に考えている人がいたらコメントで教えてください


21
右ボタンをUINavigationControllerに追加する方法は?
ナビゲーションコントローラーのトップバーに更新ボタンを追加しようとしていますが、うまくいきません。 これがヘッダーです: @interface PropertyViewController : UINavigationController { } これが私がそれを追加しようとしている方法です: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)]; self.navigationItem.rightBarButtonItem = anotherButton; } return self; }

29
ナビゲーションコントローラーの戻るボタンのアクションの設定
ナビゲーションコントローラーの[戻る]ボタンの既定のアクションを上書きしようとしています。ターゲットにカスタムボタンのアクションを提供しました。奇妙なことに、それをbackbutton属性に割り当てても、それらには注意が払われず、現在のビューをポップしてルートに戻るだけです。 UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle: @"Servers" style:UIBarButtonItemStylePlain target:self action:@selector(home)]; self.navigationItem.backBarButtonItem = backButton; leftBarButtonItemon を設定するとすぐnavigationItemにアクションが呼び出されますが、ボタンは矢印の付いたボタンではなく、単純な丸いボタンのように見えます。 self.navigationItem.leftBarButtonItem = backButton; ルートビューに戻る前にカスタムアクションを呼び出すにはどうすればよいですか?デフォルトの戻るアクションを上書きする方法はありますか、またはビューを離れるときに常に呼び出されるメソッドはありviewDidUnloadますか?

11
ナビゲーションバーの表示/非表示
2つのバーボタンで構成されるナビゲーションバーを備えたアプリがあります。ユーザーが画面をダブルタップしたときに、このナビゲーションバーの表示と非表示を切り替えます。 最初は、ナビゲーションバーを非表示にする必要があります。ユーザーが画面をダブルタップすると、ナビゲーションバーに、iPhoneのフォトギャラリーに表示されるようなアニメーションが表示されます。 どうすればこれを行うことができますか?提案は常に高く評価されています。


25
iOS 8でビューコントローラーの向きを強制する方法
iOS 8より前は、supportedInterfaceOrientationsおよびshouldAutoRotateデリゲートメソッドと組み合わせて以下のコードを使用して、アプリの向きを特定の向きに強制しました。以下のコードスニペットを使用して、プログラムでアプリを目的の向きに回転させました。まず、ステータスバーの向きを変更します。そして、モーダルビューを表示してすぐに閉じると、ビューが目的の方向に回転します。 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES]; UIViewController *c = [[UIViewController alloc]init]; [self presentViewController:vc animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; しかし、これはiOS 8では失敗しています。また、スタックオーバーフローでいくつかの回答を見てきましたが、iOS 8以降はこのアプローチを常に避けるべきであると人々から提案されました。 具体的には、私のアプリケーションはユニバーサルタイプのアプリケーションです。合計3つのコントローラーがあります。 First Viewコントローラ -iPadではすべての方向をサポートし、iPhoneではポートレート(ホームボタンを押した状態)のみをサポートする必要があります。 セカンドビューコントローラー -すべての状況でランドスケープのみをサポートします サードビューコントローラー -すべての状況でランドスケープのみをサポートする必要があります ページナビゲーションにはナビゲーションコントローラを使用しています。最初のビューコントローラーから、ボタンクリックアクションで、2番目のアクションをスタックにプッシュします。そのため、デバイスの向きに関係なく、2番目のビューコントローラーが到着すると、アプリは横向きにのみロックする必要があります。 以下は、2番目と3番目のビューコントローラーのmy メソッドshouldAutorotateとsupportedInterfaceOrientationsメソッドです。 -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscapeRight; } -(BOOL)shouldAutorotate { return NO; } これの解決策、またはiOS 8の特定の方向でビューコントローラをロックするより良い方法はありますか?助けてください!!


8
プッシュされたコントローラーからRootViewControllerを取得するにはどうすればよいですか?
だから、私はRootViewControllerからビューコントローラーを次のようにプッシュします: [self.navigationController pushViewController:anotherViewController animated:YES]; しかし、anotherViewController今から、再びRootViewControllerにアクセスしたいと思います。 私はしようとしています //(今度はanotherViewController内) /// RootViewController * root =(RootViewController *)self.parentViewController; // 番号。 //エラー RootViewController * root =(RootViewController *)[self.navigationController.viewControllers objectAtIndex:0]; // はい!!できます なぜこれが機能するのか、またそれが最善の方法であるのかどうかはわかりません。誰かがRootViewControllerのnavigationControllerにプッシュしたコントローラーからRootViewControllerを取得するためのより良い方法や、私が行った方法が信頼できるかどうかについてコメントできますか?

13
プログラムでナビゲーションバーの高さを取得する
moreビューコントローラー(ナビゲーションバー)の存在がUIViewの高さを押し下げることは知っています。この高さ= 44pxであることも知っています。このプッシュダウンがを維持していることも発見しました[self.view].frame.origin.y = 0。 では、このナビゲーションバーの高さを、定数に設定するだけでなく、どのように決定するのでしょうか。 または、より短いバージョンでは、UIViewがナビゲーションバーを上にして表示されていることをどのように判断しますか? 電球が点灯し始めました。残念ながら、以下で説明するように、問題を修正するための統一された方法を発見していません。 私の問題はすべて私の自動サイズ変更マスクに集中していると思います。そして、UIWebViewの有無にかかわらず、同じ現象が存在すると私が結論付けた理由。そしてその症状は、ポートレートにとってすべてが桃色だということです。ランドスケープの場合、一番下のUIButtonがTabBarの後ろにポップアップします。 たとえば、私が持っている1つのUIViewで、上から下へ: UIView –両方のスプリングが設定され(デフォルトの場合)、ストラットなし UIScrollView-2つのスプリングを設定し、その他すべて(UIViewなど)をクリアすると、UIButtonはそのすぐ上のオブジェクトに侵入します。すべてをクリアすると、UIButtonは問題ありませんが、最上部にあるものはStatusBarの後ろに隠れます。上部のストラットのみを設定すると、UIButtonはタブバーの後ろにポップアップします。 次の垂直方向のUILabelとUIImage –トップストラットセット、他のあらゆる場所で柔軟 UIWebViewを持っている少数の人のために画像を完成させるためだけに: UIWebView-Struts:上、左、右Springs:両方 UIButton –何も設定されていない、つまりどこでも柔軟 私の電球は暗いですが、希望があるようです。 短い返答コメントよりも多くのスペースが必要だったので、ご容赦ください。 私が実際に何のために釣りをしているのか理解してくれてありがとう...だからここに行く。 1)各UIViewController(TabBarアプリ)には、UIImage、いくつかのテキスト、その他の上に何でも持っています。別の共通点は、下部にあるUIButtonです。一部のUIViewControllersでは、UIButtonの上にUIWebViewがあります。 したがって、UIImage、テキストなど。UIWebView(一部の)UIButton 上記すべてを囲んでいるのがUIScrollViewです。 2)UIWebViewがあるものの場合、autoresizingMaskは次のようになります。 — | — ^ | | | — | ←----→| — | | | V UIButtonのマスクには何も設定されていません。つまり、どこでも柔軟です -viewDidLoad内で、-repositionSubViewsを呼び出し、その中で次のことを行います。 UIWebViewがない場合は、IBで配置したUIButtonを中央に配置する以外は何もしません。 UIWebViewがある場合は、その* content * Heightを決定して、コンテンツ全体を囲むようにフレームを設定します。 UIScrollView *scrollViewInsideWebView = …

8
IOS7:UINavigationControllerのUIScrollViewオフセット
私は現在iOS 7でアプリを移行していますが、新しいナビゲーションコントローラー/バーの管理に何時間も行き詰まっています。 以前は、ナビゲーションコントローラがあったときに、次のようなスニペットがありました。 UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]]; インターフェースビルダーでは、ビューの既存のナビゲーションバーを設定することで、すべてが実際のビューのコンテンツと一致しました。 わかりましたので、今、私はインターフェイスビルダーで適切に設計する方法の手がかりがありません。私はまだ、navcontrollerを初期化するためのスニペットを持っています。ただし、MainViewControllerのインターフェイスビルダーで、ステータスバーを半透明または不透明のナビゲーションバーに設定すると、上部にオフセットが44pxになります(以下を参照)。 Interface Builder_________________________そしてその結果 ステータスバーを[なし]に設定すると、上部にオフセットはありませんが、ナビゲーションバーのためにシミュレーターのビューが小さくなるため、インターフェイスビルダーのビューの下部が切り取られます。 Interface Builder_________________________そしてその結果 私はここで何か不足していると思いますが、それについてのiOS7移行ガイドでトピックやアップル情報を見つけることができません。 ご協力いただきありがとうございます 編集 写真からわかるように、ビューの最初の子は両方のラベルを含むUIScrollViewであり、スクロールビューがない場合は問題は発生しません。UITableViewの場合にも表示されます。ラベルがUIScrollViewの外にある場合、そのラベルへのオフセットはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.