আইফোন কেবল প্রথম পৃষ্ঠায় নেভিগেশন বারটি লুকান


381

আমার নীচের কোড রয়েছে যা নেভিগেশনাল বারটি লুকিয়ে রাখে এবং দেখায়। যখন প্রথম ভিউ লোড হয় এবং তখন "বাচ্চাদের" ডাকলে লুকানো হয়। সমস্যাটি হ'ল আমি যখন ইভেন্ট / অ্যাকশনটি আবার গোপন করার জন্য এটিকে আবার ট্রিগার করতে পাই না তখন যখন তারা মূল দৃশ্যে ফিরে আসে ....

আমার কাছে মূল পৃষ্ঠায় একটি "পরীক্ষা" বোতাম রয়েছে যা ম্যানুয়ালি ক্রিয়া করে তবে এটি সুন্দর নয় এবং আমি এটি স্বয়ংক্রিয় হয়ে উঠতে চাই।

-(void)hideBar 
{
    self.navController.navigationBarHidden = YES;
}
-(void)showBar 
{       
    self.navController.navigationBarHidden = NO;
}

উত্তর:


1035

আমি যে সর্বোত্তম সমাধানটি পেয়েছি তা হ'ল প্রথম দেখার নিয়ামকটিতে নিম্নলিখিতটি করা ।

উদ্দেশ্য গ

- (void)viewWillAppear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:NO animated:animated];
    [super viewWillDisappear:animated];
}

দ্রুতগতি

override func viewWillAppear(animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
    super.viewWillAppear(animated)
}

override func viewWillDisappear(animated: Bool) {
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
    super.viewWillDisappear(animated)
} 

আপনি যখন UIViewControllerস্ট্যাকের উপরের অংশটি চাপবেন এবং বামদিকে সরে যেতে (পুরানো দৃশ্যের সাথে একসাথে ) নেভিগেশন বারটি অ্যানিমেট করার কারণ হবে যখন আপনি পিছনের বোতামটি টিপবেন UINavigationBar

দয়া করে নোট করুন যে এগুলি প্রতিনিধি পদ্ধতি নয়, আপনি UIViewControllerএই পদ্ধতিগুলির প্রয়োগকে ওভাররাইড করছেন এবং ডকুমেন্টেশন অনুসারে আপনাকে অবশ্যই আপনার প্রয়োগের কোথাও সুপারের বাস্তবায়ন কল করতে হবে


2
এই পুরোপুরি শিলা! আমি এটি নিয়ে কমপক্ষে একদিন ধরে লড়াই করে যাচ্ছিলাম। ধন্যবাদ !!!
জেমস টেটা

26
সতর্কতা: দ্রুত ব্যাকস্পাইপ করার সময় এটি খুব খারাপ ত্রুটি তৈরি করে। ধরে নিন একটি (নাভবার নয়) এবং বি (নাভবার সহ) স্ট্যাকের উপরে ধাক্কা। বি দেখার সময় এবং দ্রুত ব্যাকস্পাই করার সময়, তবে বিতে থাকার জন্য তাড়াতাড়ি মুক্তি দিন, নাভবারটি এখনও লুকিয়ে থাকবে gets এখন আর ফিরে যাওয়ার উপায় নেই। এই কারণে হয় animated=YES। আমি জানি এটি দেখতে কুৎসিত দেখাচ্ছে animated=NO, তবে মনে হচ্ছে যখন নববারটি লুকানোর জন্য অ্যানিমেশনটি এখনও শেষ হয়নি, তখন আবার দেখানোর জন্য অ্যানিমেশনটি উপেক্ষা করা হবে। এখনও কোন সমাধান নেই।
চমত্কার

3
সুইফ্টে: ওভাররাইড ফ্যানক ভিউ উইল অ্যাপয়ার (অ্যানিমেটেড: বুল) {সেলফ্যাভিগেশন নেভিগেশন নিয়ন্ত্রণকারী? অ্যানিমেটেড: মিথ্যা) সুপার.ভিউ উইলডিস্পিয়ার (সত্য) K
কিটসন

7
2010 সালে প্রশ্নের উত্তর দেওয়া হয়েছিল এবং 2015 এর শেষে আমাকে সহায়তা করে! ধন্যবাদ.
ওয়ালহি

1
এখন এটাই আমি একটি কিংবদন্তি উত্তর বলি। দুর্দান্ত কৌশল সাথী। এমনকি কয়েক দশক পরেও কাজ করা ... তত দ্রুত তা প্রয়োগ করা হয়েছে, নির্দোষভাবে কাজ করা। আপনার উত্তরের জন্য +1 @ অ্যালান রজার্স
অন ​​কমপ্লিট

62

আমি যে আরেকটি পন্থা পেয়েছি তা হ'ল NavigationController:

navigationController.delegate = self;

এবং ব্যবহার setNavigationBarHiddenমধ্যেnavigationController:willShowViewController:animated:

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController 
                    animated:(BOOL)animated 
{   
    // Hide the nav bar if going home.
    BOOL hide = viewController != homeViewController;
    [navigationController setNavigationBarHidden:hide animated:animated];
}

প্রত্যেকের জন্য আচরণ ViewControllerএক জায়গায় কাস্টমাইজ করার সহজ উপায় ।


কখন এই ডাকা হবে?
জালাক প্যাটেল

1
নিখুঁত সমাধান. এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। ধন্যবাদ!
সামাহ

নিখুঁত উত্তর. আমরা প্রথম ভিউ কন্ট্রোলারে ভিউ উইল অ্যাপয়ার এবং ভিউ উইলডিস্পায়ার পদ্ধতিগুলিকে ওভাররাইড করতে না পারার ক্ষেত্রে এটি কাজ করে।
pjuzeliunas

1
অসাধারণ. নির্বাচিত উত্তর ঠিক কাজ করে তবে কেবল সাধারণ অ্যাপ্লিকেশনগুলিতে। যখন এনএভি বার কোনও ট্যাব নিয়ামক থাকে এবং বিভিন্ন উপাচার্যকে বিভিন্ন উপায়ে চাপ দেয় / উপস্থাপন করে তখন এই উত্তরটি কার্যকর হয়।
জোনাথন উইঙ্গার-ল্যাং

এটি সেরা উত্তর। শীর্ষের উত্তরটি @ ফ্যাব' -এর বর্ণনা হিসাবে একটি বাগ হতে পারে ।
রায়ান.ইউয়েন

18

একটি সামান্য সাম্প্রতিক কান্ড আমি অন্যান্য উত্তরগুলি করতে হয়েছিল তা হল কেবলমাত্র উইলডিস্পায়ার বারটি প্রদর্শন না করা যদি এটি নেভিগেশন আইটেমটির উপর চাপ দেওয়া হওয়ার কারণে এটি অদৃশ্য হওয়ার কারণ হয়। এটি কারণ অন্যান্য কারণে ভিউ অদৃশ্য হয়ে যেতে পারে।

সুতরাং এই বারটি যদি শীর্ষস্থানীয় দর্শন না হয় তবে আমি কেবল বারটি আনহাইড করি:

- (void) viewWillDisappear:(BOOL)animated
{
    if (self.navigationController.topViewController != self)
    {
        [self.navigationController setNavigationBarHidden:NO animated:animated];
    }

    [super viewWillDisappear:animated];
}

3
+1, কোনও মডেল ডায়ালগটি চাপ দেওয়ার সময় আপনি সাধারণত নেভিগেশন বারটি দেখাতে চান না।
জোও পোর্তেলা

17

আমি প্রতিটি ভিউতে দেখানো হচ্ছে এমন কোডটি ভিউউইল অ্যাপয়ার প্রতিনিধিতে রেখে দেব :

আপনি এটি লুকানোর প্রয়োজন যেখানে এটি পছন্দ করুন:

- (void)viewWillAppear:(BOOL)animated
{
        [yourObject hideBar];
}

এটি যেখানে আপনার এটি দেখাতে হবে এটি পছন্দ করুন:

- (void)viewWillAppear:(BOOL)animated
{
        [yourObject showBar];
}

লি, এটি যদি আপনার সমস্যার সমাধান করে তবে পাবলোকে "সমাধান" উত্তর হিসাবে চিহ্নিত করুন।
রোগ

2
এটির সাথে একমাত্র সমস্যা হ'ল নেভিগেশন বারটি "পপস" হয়ে যায় এবং আপনি যখন একটি ভিউ থেকে অন্য দৃশ্যে নেভিগেট করেন তখন দৃষ্টিতে। প্রথম দর্শনে কেবলমাত্র নেভিগেশন বার না থাকা এবং দ্বিতীয় দর্শনটি যখন স্লাইড হয়ে যায়, তখন কোনও পপিং ছাড়াই এটিতে এনএভি বার রয়েছে?
হেনিং

2
@ হেনিং নাভবার স্লাইডটি আপনার প্রত্যাশা অনুসারে / আউট করার জন্য আপনাকে সেটনিভিগেশনবারহিডন: অ্যানিমেটেড: ব্যবহার করতে হবে নীচে অ্যালান রজার্সের উত্তর দেখুন (যা সত্যই "সমাধান" হিসাবে চিহ্নিত করা উচিত)।
নিক ফরজ

2
এই উত্তরটি কিছুটা ভুল (ভিউউইল / ডিডঅ্যাপার) সুপারকে কল করা উচিত। এমন সমাধানের জন্য নীচে আমার উত্তরটি দেখুন যেখানে আপনাকে এটি প্রতিটি ভিউ নিয়ামকের সাথে যুক্ত করার দরকার নেই।
অ্যালান রজার্স

15

বর্তমানে গৃহীত উত্তর প্রশ্নের বর্ণনায় বর্ণিত আচরণের সাথে মেলে না। প্রশ্নটি ন্যাভিগেশন বারের জন্য মূল ভিউ নিয়ন্ত্রকের উপরে লুকিয়ে থাকতে বলেছে, তবে অন্য কোথাও দৃশ্যমান, তবে গৃহীত উত্তরটি একটি নির্দিষ্ট দর্শন নিয়ন্ত্রকের নেভিগেশন বারটি আড়াল করে। প্রথম দৃশ্যের নিয়ন্ত্রকের আর একটি উদাহরণ যখন স্ট্যাকের দিকে ঠেলে দেওয়া হয় তখন কী ঘটে? এটি রুট ভিউ নিয়ামকের দিকে না দেখলেও এটি নেভিগেশন বারটি আড়াল করবে।

পরিবর্তে, @ চ্যাড এম এর ব্যবহারের কৌশলUINavigationControllerDelegate ভাল এবং এখানে আরও একটি সম্পূর্ণ সমাধান রয়েছে। পদক্ষেপ:

  1. উপশ্রেণী UINavigationController
  2. প্রয়োগ করুন -navigationController:willShowViewController:animatedনেভিগেশন বারটি মূল ভিউ নিয়ামকটি প্রদর্শিত হচ্ছে কিনা তার ভিত্তিতে প্রদর্শন বা আড়াল করার পদ্ধতিটি
  3. ইউআইএনএভিগেশন কন্ট্রোলার সাবক্লাসকে নিজস্ব প্রতিনিধি হিসাবে সেট করতে আরম্ভের পদ্ধতিগুলি ওভাররাইড করুন

এই সমাধান জন্য সম্পূর্ণ কোড খুঁজে পাওয়া যেতে পারে এই সারকথাnavigationController:willShowViewController:animatedবাস্তবায়ন এখানে :

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    /* Hide navigation bar if root controller */
    if ([viewController isEqual:[self.viewControllers firstObject]]) {
        [self setNavigationBarHidden:YES animated:animated];
    } else {
        [self setNavigationBarHidden:NO animated:animated];
    }
}

2
এটি গৃহীত উত্তরটির চেয়ে আরও উপযুক্ত উত্তর
পাভেল গুরভ

14

সুইফটে 3:

override func viewWillAppear(_ animated: Bool) {
    navigationController?.navigationBar.isHidden = true
    super.viewWillAppear(animated)
}


override func viewWillDisappear(_ animated: Bool) {
    if (navigationController?.topViewController != self) {
        navigationController?.navigationBar.isHidden = false
    }
    super.viewWillDisappear(animated)
}

আপনি কেন নিজের জন্য পরীক্ষা করছেন তা ব্যাখ্যা করতে পারেন! = স্ব?
কিটসন

2
@ কিটসন, ব্যবহারকারীর check48664 answer6 জবাবটি পরীক্ষা করুন: অন্য উত্তরগুলি সম্পর্কে আমাকে একটি সামান্য
ইউজিন ব্রাগিনেটস

দেখে মনে হচ্ছে আপনি navcontroller.navagationBarHiddenএটি ব্যবহার করে পুরো নেভিগেশন নিয়ন্ত্রককে ভেঙে ফেলা হবে (পিছনে পিছনে সোয়াইপ করা হবে না)। এটি কাজ করতে আমি navigationController?.navigationBar.hiddenপরিবর্তে ব্যবহার করেছি । এখনও সোয়াইপ করলে কাজ করে এবং এটা খালি স্থান কারণ এটি একটি stackview ভিতরে বা কিছু হবে বলে মনে হয় ছাড়বে না
সাইরেন

8

@ চাদ-এম এর উত্তরে আমার কৃতিত্ব দিন।

এখানে সুইফ্ট সংস্করণটি রয়েছে:

  1. একটি নতুন ফাইল তৈরি করুন MyNavigationController.swift

import UIKit

class MyNavigationController: UINavigationController, UINavigationControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        self.delegate = self
    }

    func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
        if viewController == self.viewControllers.first {
            self.setNavigationBarHidden(true, animated: animated)
        } else {
            self.setNavigationBarHidden(false, animated: animated)
        }
    }

}
  1. স্টোরবোর্ডে আপনার ইউএনএভিগেশন কন্ট্রোলারের ক্লাসটি মাইনাভিগেশনকন্ট্রোলারে সেট করুন !MyNavigationController

চাদ-এম এর উত্তর এবং আমার মধ্যে পার্থক্য:

  1. ইউআইএনএভিগেশন কন্ট্রোলার থেকে উত্তরাধিকারী, যাতে আপনি আপনার রুটভিউ নিয়ন্ত্রণকারীকে কলুষিত করবেন না।

  2. self.viewControllers.firstপরিবর্তে ব্যবহার করুন homeViewController, সুতরাং আপনি 1 স্টোরিবোর্ডে আপনার 100 ইউআইএনএভিগেশন কন্ট্রোলারদের জন্য এটি 100 বার করবেন না।


এই পরিষ্কার উত্তর মনে করুন। ধন্যবাদ
দাশিলভা

6

একাধিক পরীক্ষার পরে এখানে আমি কী চাই তা কাজ করতে পেলাম। এটিই আমি চেষ্টা করছিলাম। - আমার সাথে একটি চিত্র আছে। এবং আমি ইমেজটি পুরো স্ক্রিনে যেতে চাই। - আমার কাছে একটি ট্যাববার সহ একটি নেভিগেশন কন্ট্রোলারও রয়েছে। সুতরাং আমি এটি লুকানো প্রয়োজন। - এছাড়াও, আমার মূল প্রয়োজনটি কেবল লুকানো ছিল না, দেখানোর সময় এবং লুকানোর সময় একটি বিবর্ণ প্রভাবও ছিল।

এইভাবে আমি এটি কাজ করেছিলাম।

পদক্ষেপ 1 - আমি একবারে একটি চিত্র এবং ব্যবহারকারীর সেই চিত্রটিতে ট্যাপ করি। আমি সেই অঙ্গভঙ্গিটি ক্যাপচার করেছি এবং এটিকে নতুনের মধ্যে ঠেলাচ্ছি imageViewController, এর মধ্যে imageViewController, আমি পূর্ণ স্ক্রিন চিত্র পেতে চাই।

- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer {  
NSLog(@"Single tap");
ImageViewController *imageViewController =
[[ImageViewController alloc] initWithNibName:@"ImageViewController" bundle:nil];

godImageViewController.imgName  = // pass the image.
godImageViewController.hidesBottomBarWhenPushed=YES;// This is important to note. 

[self.navigationController pushViewController:godImageViewController animated:YES];
// If I remove the line below, then I get this error. [CALayer retain]: message sent to deallocated instance . 
// [godImageViewController release];
} 

পদক্ষেপ 2 - নীচের এই সমস্ত পদক্ষেপগুলি চিত্রভিউ নিয়ন্ত্রণকারীতে রয়েছে in

পদক্ষেপ 2.1 - ভিউডিডলয়েডে, নাভিবারটি দেখান

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"viewDidLoad");
[[self navigationController] setNavigationBarHidden:NO animated:YES];
}

পদক্ষেপ 2.2 - ইন viewDidAppear, বিলম্ব সহ একটি টাইমার টাস্ক সেট আপ করুন (আমার এটি 1 সেকেন্ড বিলম্বের জন্য সেট করা আছে)। এবং বিলম্বের পরে, বিবর্ণ প্রভাব যুক্ত করুন। আমি বিবর্ণ ব্যবহার করতে আলফা ব্যবহার করছি।

- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear");

myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self     selector:@selector(fadeScreen) userInfo:nil repeats:NO];
}

- (void)fadeScreen
{
[UIView beginAnimations:nil context:nil]; // begins animation block
[UIView setAnimationDuration:1.95];        // sets animation duration
self.navigationController.navigationBar.alpha = 0.0;       // Fades the alpha channel of   this view to "0.0" over the animationDuration of "0.75" seconds
[UIView commitAnimations];   // commits the animation block.  This Block is done.
}

পদক্ষেপ 2.3 - এর অধীনে viewWillAppear, ইমেজটিতে সিঙ্গেলট্যাপ অঙ্গভঙ্গি যুক্ত করুন এবং নাভবারটি অর্ধপুঞ্জক করুন।

- (void) viewWillAppear:(BOOL)animated
{

NSLog(@"viewWillAppear");


NSString *path = [[NSBundle mainBundle] pathForResource:self.imgName ofType:@"png"];

UIImage *theImage = [UIImage imageWithContentsOfFile:path];

self.imgView.image = theImage;

// add tap gestures 
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];  
[self.imgView addGestureRecognizer:singleTap];  
[singleTap release];  

// to make the image go full screen
self.navigationController.navigationBar.translucent=YES;
}

- (void)handleTap:(UIGestureRecognizer *)gestureRecognizer 
{ 
 NSLog(@"Handle Single tap");
 [self finishedFading];
  // fade again. You can choose to skip this can add a bool, if you want to fade again when user taps again. 
 myTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self  selector:@selector(fadeScreen) userInfo:nil repeats:NO];
 }

পদক্ষেপ 3 - অবশেষে viewWillDisappear, সমস্ত জিনিস পিছনে রাখা নিশ্চিত করুন

- (void)viewWillDisappear: (BOOL)animated 
{ 
self.hidesBottomBarWhenPushed = NO; 
self.navigationController.navigationBar.translucent=NO;

if (self.navigationController.topViewController != self)
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

[super viewWillDisappear:animated];
}

4

গ্রহণযোগ্য উত্তরে @ ফ্যাব মন্তব্য করার কারণে দ্রুত ব্যাকসওয়াইপ বাতিল হওয়া বাগের ক্ষেত্রে কেউ এখনও সমস্যা বোধ করছেন ।

আমি নীচে দেখানো viewDidLayoutSubviewsছাড়াও ওভাররাইড করে এটি ঠিক করতে পরিচালনা করি viewWillAppear/viewWillDisappear:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

//*** This is required to fix navigation bar forever disappear on fast backswipe bug.
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.navigationController?.setNavigationBarHidden(false, animated: false)
}

আমার ক্ষেত্রে, আমি লক্ষ্য করেছি যে এটি হ'ল কারণ রুট ভিউ কন্ট্রোলার (যেখানে এনএভি লুকানো রয়েছে) এবং পুশ ভিউ কন্ট্রোলার (এনএভি প্রদর্শিত হয়) এর বিভিন্ন স্ট্যাটাস বার স্টাইল রয়েছে (যেমন অন্ধকার এবং হালকা)। ভিউ কন্ট্রোলারটিকে পপ করতে আপনি যে মুহুর্তে ব্যাকস্পাইপটি শুরু করবেন, সেখানে অতিরিক্ত স্ট্যাটাস বারের রঙ অ্যানিমেশন থাকবে। ইন্টারেক্টিভ পপ বাতিল করতে আপনি যদি নিজের আঙুলটি ছেড়ে দেন, যখন স্ট্যাটাস বার অ্যানিমেশনটি শেষ না হয় , নেভিগেশন বারটি চিরতরে চলে যায়!

যাইহোক, উভয় ভিউ নিয়ন্ত্রকের স্ট্যাটাস বারের শৈলীগুলি একই হলে এই বাগটি ঘটে না doesn't


1

আপনি যা চান তা নিয়ন্ত্রকের মধ্যে নেভিগেশন বারটি পুরোপুরি আড়াল করা হয়, মূল নির্ধারকটিতে অনেকগুলি ক্লিনার সমাধান যেমন:

@implementation MainViewController
- (void)viewDidLoad {
    self.navigationController.navigationBarHidden=YES;
    //...extra code on view load  
}

আপনি যখন নিয়ামকটিতে কোনও শিশু দর্শনকে চাপ দিন, নেভিগেশন বারটি গোপন থাকবে; যদি আপনি এটি শুধু শিশু প্রদর্শন করাতে চান, আপনি কোড প্রদর্শনের জন্য যুক্ত করতে হবে it(self.navigationController.navigationBarHidden=NO;)সালে viewWillAppearকলব্যাক কোড এটিতে লুকানোর জন্য, এবং একইভাবেviewWillDisappear


0

সবচেয়ে সহজ বাস্তবায়ন হ'ল প্রতিটি ভিউ কন্ট্রোলার কেবল এটির ন্যাভিগেশন বারটি লুকিয়ে আছে কিনা তা নির্দিষ্ট করে দেওয়া উচিত viewWillAppear:animated:। একই পদ্ধতিটি সরঞ্জামদণ্ডটি লুকিয়ে / দেখানোর জন্যও ভাল কাজ করে:

- (void)viewWillAppear:(BOOL)animated {
    [self.navigationController setToolbarHidden:YES/NO animated:animated];
    [super viewWillAppear:animated];
}

আসলে, আমার পরামর্শটি কেবলমাত্র সরঞ্জামদণ্ডের জন্যই বোধগম্য, যেহেতু নেভিগেশন বারটি কোনও মিলের কল ছাড়াই লুকিয়ে রাখার ফলে এটি ব্যবহারকারীদের বর্তমান দৃশ্য থেকে ফিরে নেভিগেট করতে অক্ষম হবে।
স্টিভকেইন

0

প্রথম পৃষ্ঠায় নেভিগেশন বারটি লুকিয়ে রাখা স্টোরিবোর্ডের মাধ্যমেও অর্জন করা যায়। স্টোরিবোর্ড তারিখে, এতে যান ন্যাভিগেশন নিয়ন্ত্রক Scene-> নেভিগেশন বার । এবং বৈশিষ্ট্য পরিদর্শক থেকে ' লুকানো ' সম্পত্তি নির্বাচন করুন । এটি প্রয়োজনীয় ভিউকন্ট্রোলারের জন্য দৃশ্যমান না হওয়া অবধি নেভিগেশন বারটি প্রথম ভিউকন্ট্রোলার থেকে শুরু করে লুকিয়ে রাখবে।

নেভিগেশন বারটি ভিউকন্ট্রোলারের ভিউউইল অ্যাপয়ার কলব্যাকে দৃশ্যমানতে ফিরে সেট করা যেতে পারে।

-(void)viewWillAppear:(BOOL)animated {

    [self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];                                                  
}

0

সুইফট 4:

ভিউ কন্ট্রোলারে আপনি এ থেকে নেভিগেশন বারটি আড়াল করতে চান।

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
    super.viewWillAppear(animated)
}

override func viewWillDisappear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
    super.viewWillDisappear(animated)
}

-1

আপনার ভিউকন্ট্রোলারে এই কোডটি প্রয়োগ করে আপনি এই প্রভাবটি পেতে পারেন আসলে কৌশলটি হ'ল, যখন নিয়ামক চালু হয় তখন নেভিগেশনবারটি লুকান

- (void)viewWillAppear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [super viewWillAppear:animated];
}

এবং ব্যবহারকারী যখন পৃষ্ঠাটি ছেড়ে যান তখন নেভিগেশন বারটি লুকিয়ে রাখুন ভিউইলডিস্পায়ার

- (void)viewWillDisappear:(BOOL)animated {
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    [super viewWillDisappear:animated];
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.