UINavigationControllerで「戻る」ボタンを隠す方法を知っていますか? また、どのようにそれをバックショーに、私はそれが電子メールを見ながら、あなたが「編集」を打ったときに、メールアプリケーションは、iPhone上でないと同じように...UINavigationControllerの "戻る"ボタンを隠すには?
それを隠すと非常によく似だと思います。
UINavigationControllerで「戻る」ボタンを隠す方法を知っていますか? また、どのようにそれをバックショーに、私はそれが電子メールを見ながら、あなたが「編集」を打ったときに、メールアプリケーションは、iPhone上でないと同じように...UINavigationControllerの "戻る"ボタンを隠すには?
それを隠すと非常によく似だと思います。
私は、コントローラの使用中に、答えを見つけたこの:
[self.navigationItem setHidesBackButton:YES animated:YES];
そして復元するには:
[self.navigationItem setHidesBackButton:NO animated:YES];
と条件付きで次のコードを使用することができます戻るボタンを表示します:
-(void)viewDidAppear:(BOOL)animated
{
if ([tempAry count]==0)
{
[self.navigationItem setHidesBackButton:YES animated:YES];
}
else
{
[self.navigationItem setHidesBackButton:NO animated:YES];
}
[super viewDidAppear:animated];
}
注:場合によっては、viewWではなくviewDidAppearメソッドに配置する必要がありますこのような場合は、次のクラスの配列を前のクラスに更新しているときに、上記のように次のクラスに条件をチェックしているときには、 のようになります。私はこの方法を持っている私のUIViewControllerのサブクラスで
:
-(void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated: animated];
// hide back button in edit mode
[self.navigationItem setHidesBackButton:editing animated:YES];
}
ソリューションは、何らかの理由で私のために動作しませんでしたゾランシミックによって示唆しています。
このコードでは、しかし、仕事をした:
MyController* controller = [[MyController alloc] init];
NSArray* array = [[[NSArray alloc] initWithObjects:controller, nil] autorelease];
[self.navigationController setViewControllers:array animated:NO];
[controller release];
明らかにあなたはそれがあなたのために動作させるために、あなたの好みにNSArrayのを操作する必要があると思います。誰か:)
ありがとう!私は奇妙なバグと戦っていたし、これはトリックでした。誰にとってもそうではなく、適切な場合に役立ちます。 – Brandon
が前にユーザはまだ「ポップ」を忘れてはいけない、(既に推奨メソッドを使用して)バックボタンを除去することに加えて、このコード
[self.navigationItem setHidesBackButton:YES];
を追加できます ・ホープiOS 7以降では左から右のスワイプジェスチャーで(たとえばのviewDidLoadで)以下を実装し、(適切な場合)ことを無効にする
:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
あなたのためにMatt - +1。このメモを追加していただきありがとうございます。非常に便利。ポップジェスチャーの仕組みが不思議に思える人は、ナビゲーションバーの左から右にスワイプして、Mattがここで説明していることを再現してください。上記のコードを追加すると、ユーザは、それが含まれているビューコントローラでこれを行うことができなくなります。 – noobzilla
sethidesbackbuttonが何らかの理由
のために私のために動作しませんでした私は、この方法を使用 - >
をself.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc]initWithFrame:CGRectMake(0, 0, 20, 30)]] ;
ありがとう..私はsetHidesBackButtonと同じ問題がありました:YES did not worked。 しかし、この解決策はiOS 7で機能しました。 – mohsinj
ただ、既存の答えを明確にする:hidesBackButton
プロパティは正解ですが、多くの回答では何が表示されているのかは不明ですself
基本的には、UINavigationController
にプッシュ(またはプッシュ)されようとしているビューコントローラ内にself.navigationItem.hidesBackButton = YES
を設定する必要があります。
つまり、UINavigationController
という名前のmyNavController
があります。私はその上に新しい視点を入れたいと思うし、私がそうしたときに私はもはやバックボタンを表示したくない。私のような何かができる:
UIViewController *newVC = [[UIViewController alloc] init];
//presumably would do some stuff here to set up the new view controller
newVC.navigationItem.hidesBackButton = YES;
[myNavController pushViewController:newVC animated:YES];
コードが終了すると、newVC
によって制御されるビューは、現在表示すべきであり、何のバックボタンが表示されないはずです。
ありがとう、これは私が必要としたものです –
NavigationController.NavigationItemを最初にやっていたので、まさに私が必要でした。マットありがとう。 – Chucky
清算のお礼あり –
私の場合は、現在の答えといくつかの問題があった:「戻る」
でそれを見たいと思っていなかったので、最終的には私のために働いてきた解決策は以下のとおりです。
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self.navigationItem setHidesBackButton:YES animated:NO];
}
return self;
}
スウィフトのiOS(私は次のように使用している)
// hide back button
self.navigationItem.setHidesBackButton(true, animated: false)
// pgrm mark ----- ------
// hide the back button for this view controller
override func setEditing(editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
self.navigationItem.setHidesBackButton(editing, animated: animated)
}// end setEditing
、必ずここで彼らはより簡単かつ軽量でシンプルな問題:)
のためのAppleのドキュメントを使用するには、スウィフト3.0の構文は次のとおりです。
self.navigationItem.setHidesBackButton(true, animated:true)
参考
すでに上で説明何度でもAppleのあたりのViewController APIを使用する必要があり、3
一般
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
// This hides the back button while in editing mode, which makes room for an add item button
self.navigationItem.setHidesBackButton(editing, animated: animated)
if editing {
// This adds the add item button
let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
// Use the animated setter for the left button so that add button fades in while the back button fades out
self.navigationItem.setLeftBarButton(addButton, animated: animated)
self.enableBackGesture(enabled: false)
} else {
// This removes the add item button
self.navigationItem.setLeftBarButton(nil, animated: animated)
self.enableBackGesture(enabled: true)
}
}
func enableBackGesture(enabled: Bool) {
// In addition to removing the back button and adding the add item button while in edit mode, the user can still exit to the previous screen with a left-to-right swipe gesture in iOS 7 and later. This code disables this action while in edit mode.
if let navigationController = self.navigationController {
if let interactivePopGestureRecognizer = navigationController.interactivePopGestureRecognizer {
interactivePopGestureRecognizer.isEnabled = enabled
}
}
}
削除;スウィフトで:) –
これは、戻るボタンを隠し、スウィフトの[追加]ボタンに置き換えこのページが表示されますが、[戻る]ボタンをすぐに制御する必要があることがあります。
次のコードは、[戻る]ボタンを非表示にし、非表示のボタン領域でタップの衝突の検出が行われないようにします。
let emptyView = UIView(frame: .zero)
self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: emptyView)
スウィフト:
これは、バックボタン
let backBtn = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.plain, target: navigationController, action: nil)
navigationItem.leftBarButtonItem = backBtn
を隠すには、また、私のミスから学ぶ: 'あなたがnavigationControllerにnavigationItemを押す前に:あなたは' setHidesBackButtonを呼び出す必要があります。 – codingFriend1
なぜですか? viewControllerをプッシュして、戻るボタンを隠してユーザーが戻るのを防ぐにはどうしたらいいですか? –
@codingFriend - バックボタンを表示したくないビューのviewDidAppearメッセージハンドラにsetHidesBackButtonを置くと、これも機能します。 – Anon