سؤال

أضفت عنصر تحكم التنقل إلى التبديل بين وجهات النظر في التطبيق.ولكن بعض الآراء لا ينبغي أن يكون 'عودة' (العنوان السابق) زر.أي أفكار حول كيفية إخفاء الزر مرة أخرى ؟

هل كانت مفيدة؟

المحلول

الهدف-C:
    self.navigationItem.hidesBackButton = YES;

وسويفت:
    navigationItem.hidesBackButton = true

نصائح أخرى

وأفضل طريقة هي أن الجمع بين هذه، لذلك سوف إخفاء زر العودة حتى لو كنت إعداده يدويا:

self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.hidesBackButton=YES;

إخفاء زر الخلف مع رفع الصوت عاليا رمز...

[self.navigationItem setHidesBackButton:YES animated:YES];

أو

[self.navigationItem setHidesBackButton:YES];

أيضا إذا كان لديك مخصص UINavigationBar ثم حاول رفع الصوت عاليا رمز

self.navigationItem.leftBarButtonItem = nil;

استخدم رمز:

 self.navigationItem.backBarButtonItem=nil;

في سويفت:

هذا إضافة إلى تحكم

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.setHidesBackButton(true, animated: false)
}

في لviewDidLoad ظيفة UIViewController استخدام رمز:

self.navigationItem.hidesBackButton = YES;

لا تنسى أن عليك أن نسميها على الكائن الذي لديه تحكم الملاحة. على سبيل المثال، إذا كان لديك تحكم التنقل دفع على وحدة تحكم شريط التبويب مع RootViewController، داعيا self.navigationItem.hidesBackButton = YES على RootViewController لن تفعل شيئا. سيكون لديك فعلا للاتصال self.tabBarController.navigationItem.hidesBackButton = YES

لا ننسى أن لدينا الشريحة إلى الخلف لفتة الآن.ربما كنت ترغب في إزالة هذا أيضا. لا ننسى أن تمكن من العودة مرة أخرى إذا لزم الأمر.

if ([self.navigationItem respondsToSelector:@selector(hidesBackButton)]) {
    self.navigationItem.hidesBackButton = YES;
}

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

إضافة هذا الرمز في وحدة التحكم وجهة نظركم

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)];
UIBarButtonItem *btnL = [[UIBarButtonItem alloc]initWithCustomView:myView];
self.navigationItem.leftBarButtonItem = btnL;

وبالنسبة لي لا شيء مما سبق يبدو للعمل، وكان لا المؤثرات البصرية. أنا أستخدم القصص المصورة مع الرأي القائل بأن يتم "جزءا لا يتجزأ" في وحدة تحكم الملاحة.

وبعد ذلك في مستوى الرمز إضافة menuItems بلدي ولسبب ما "backButton" غير مرئية عند تصحيح البصر التسلسل الهرمي الرأي، ويتم عرض أيقونة بلدي MENUITEM تحت "الزر الخلفي" غير مرئية.

وحاولت الإعدادات، كما هو مقترح في طرق ربط مختلف، وأنه لم يكن لها تأثير. ثم حاولت نهجا أكثر وحشية وأعاد على subview الذي كان أيضا أي تأثير.

وأنا فتشت أحجام رمز بلادي ويبدو أن تكون على ما يرام. بعد مشيرا الى انه التفاح واجهة التوجيهي الإنسان لقد أكدت لي الأيقونات صحيحة. (1 بكسل أصغر في حالتي 24px 48px 72px).

والجزء أغرب ثم هو الإصلاح الفعلي ...

عند إضافة BarButton البند إعطائها لقب مع حرف واحد على الأقل ، أو في حالتي حرف مسافة.

وتأمل أن يساعد هذا شخص.

//left menu - the title must have a space
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " <--THE FIX 
                                                                    style:UIBarButtonItemStylePlain
                                                                  target:self
                                                                  action:@selector(showMenu)];
leftButtonItem.image = [UIImage imageNamed:@"ic_menu"];

[self.navigationItem setLeftBarButtonItem:leftButtonItem];

ولم يكن العمل بالنسبة لي في كل الحالات أنا وضعت

وself.navigationItem.hidesBackButton = YES؛

وفي viewWillAppear أو ViewDidLoad، ولكن عملت تماما عندما تعيينها في الحرف الأول من viewController.

وهذه محاولة واحدة - self.navigationController?.navigationItem.hidesBackButton = true

في ج # أو Xamarin.ios، this.NavigationItem.HidesBackButton = صحيح؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top