iphone - ন্যাভিগেশন বার শো/লুকান




ios uinavigationcontroller (7)

এই কোড আপনাকে সাহায্য করবে।

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] 
initWithTarget:self action:@selector(showHideNavbar:)];
[self.view addGestureRecognizer:tapGesture];

-(void) showHideNavbar:(id) sender 
{ 
// write code to show/hide nav bar here 
// check if the Navigation Bar is shown
if (self.navigationController.navigationBar.hidden == NO)
{
// hide the Navigation Bar
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
// if Navigation Bar is already hidden
else if (self.navigationController.navigationBar.hidden == YES)
{
// Show the Navigation Bar
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
}

আমার কাছে 2 টি বার বোতাম সহ একটি ন্যাভিগেশন বার সহ একটি অ্যাপ্লিকেশন আছে। যখন ব্যবহারকারী দ্বিগুণ স্ক্রিনটি আলতো চাপে তখন আমি এই নেভিগেশান বারটি লুকাতে এবং প্রদর্শন করতে চাই।

প্রাথমিকভাবে, ন্যাভিগেশন বার লুকানো উচিত। যখন কোনও ব্যবহারকারী দ্বিগুণ পর্দাটি ট্যাপ করে, তখন ন্যাভিগেশন বারটি অ্যানিমেশনের সাথে আসা উচিত, যেমন আইফোন এর ফটো গ্যালারিটিতে দেখা যেতে পারে।

আমি কিভাবে এই কিছু করতে পারি? পরামর্শ সবসময় প্রশংসা করা হয়।


এই কোডটি কয়েকটি লাইনের মধ্যে মাপসই করা যায় এমন কিছু নয়, তবে এটি এমন এক পদ্ধতি যা আপনার জন্য কাজ করতে পারে।

ন্যাভিগেশন বার লুকানোর জন্য:

[[self navigationController] setNavigationBarHidden:YES animated:YES];

এটি দেখানোর জন্য:

[[self navigationController] setNavigationBarHidden:NO animated:YES];

এই পদ্ধতির জন্য ডকুমেন্টেশন এখানে পাওয়া যায়

একটি "ডাবল ক্লিক" বা ডাবল-ট্যাপের জন্য, সাবক্লাস UIView শোনার জন্য এবং আপনার ভিউ কন্ট্রোলারের view সম্পত্তিটি সাবক্লাসের একটি উদাহরণ তৈরি করুন।

দেখুন -touchesEnded:withEvent: , তার- -touchesEnded:withEvent: ওভাররাইড -touchesEnded:withEvent: পদ্ধতি এবং সময়সীমার মধ্যে আপনি কতটি স্পর্শ পেতে পারেন তা ধরে নিন, দুইটি ট্যাপের মাঝে সময়টি পরিমাপ করে, সম্ভবত সময়ের সাথে -timeIntervalSinceDate: অথবা [touch tapCount] থেকে ফলাফল পরীক্ষা।

যদি আপনি দুটি টিপস পান তবে আপনার NSNotification ভিউ একটি NSNotification যা আপনার ভিউ কন্ট্রোলারটি শুনতে জন্য নিবন্ধিত হয়েছে।

যখন আপনার ভিউ কন্ট্রোলারটি নোটিফিকেশন শুনবে তখন এটি একটি নির্বাচককে সরিয়ে দেবে যা নেভিগেশান বারের বর্তমান দৃশ্যমান অবস্থায় উপর নির্ভর করে isHidden কোডটি ব্যবহার করে নেভিগেশান বারটিকে লুকিয়ে বা দেখায়।

সম্পাদনা

টপ ইভেন্ট পরিচালনা করার জন্য আমার উত্তর অংশ সম্ভবত iOS 3.1 আগে সম্ভবত দরকারী। UIGestureRecognizer বর্গ সম্ভবত এই দিন, ডবল taps পরিচালনা করার জন্য একটি ভাল পদ্ধতির।

সম্পাদনা 2

ন্যাভিগেশন বার লুকানোর জন্য দ্রুত উপায় হল:

self.navigationController?.setNavigationBarHidden(true, animated: true)

এটি দেখানোর জন্য:

self.navigationController?.setNavigationBarHidden(false, animated: true)

এখানে একটি খুব দ্রুত এবং সহজ সমাধান:

self.navigationController.hidesBarsOnTap = YES;

এটি পরিবর্তে ডবল ট্যাপ একক ট্যাপ কাজ করবে। এছাড়াও বর্তমান ভিউ কন্ট্রোলার চাপানো বা পপিং করার পরেও এটি ন্যাভিগেশন কন্ট্রোলারের জন্য আচরণ পরিবর্তন করবে।

আপনি উইলএপিপিয়ারের মধ্যে আপনার নিয়ামকটিতে সর্বদা এই আচরণটি সংশোধন করতে পারেন: এবং viewWillDisappear: যদি আপনি শুধুমাত্র একটি একক ভিউ কন্ট্রোলারের জন্য আচরণ সেট করতে চান তবে ক্রিয়াকলাপ।

এখানে documentation :


ন্যাভিগেশন বার লুকানোর জন্য:

[self.navigationController setNavigationBarHidden:YES animated:YES];

ন্যাভিগেশন বার প্রদর্শন করতে:

[self.navigationController setNavigationBarHidden:NO animated:YES];

সুইফ্ট 4.2 এবং এক্সকোড 10 তে

self.navigationController?.isNavigationBarHidden = true  //Hide
self.navigationController?.isNavigationBarHidden = false  //Show

আপনি কেবলমাত্র 1 ম VC তে ন্যাভিগেশন বারটি প্রদর্শন করতে চান না তবে আপনি দ্বিতীয় ভিসি অনওয়ার্ড এর মধ্যে প্রদর্শন করতে চান

আপনার প্রথম ভিসি এই কোড লিখুন।

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true  //Hide
}

override func viewWillDisappear(_ animated: Bool) {
    self.navigationController?.isNavigationBarHidden = false  //Show
}

সুইফ্ট কোড: এটি iOS 3.2 এবং এর পরে সম্পূর্ণরূপে কাজ করে।

  override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    let tapGesture = UITapGestureRecognizer(target: self, action: "hideNavBarOntap")let tapGesture = UITapGestureRecognizer(target: self, action: "hideNavBarOntap")
    tapGesture.delegate = self
    self.view.addGestureRecognizer(tapGesture)

তারপর লিখ

func hideNavBarOntap() {
    if(self.navigationController?.navigationBar.hidden == false) {
        self.navigationController?.setNavigationBarHidden(true, animated: true) // hide nav bar is not hidden
    } else if(self.navigationController?.navigationBar.hidden == true) {
        self.navigationController?.setNavigationBarHidden(false, animated: true) // show nav bar
    }
}

Swift এই চেষ্টা করুন,

self.navigationController?.navigationBarHidden = true  //Hide
self.navigationController?.navigationBarHidden = false //Show

অথবা

self.navigationController?.setNavigationBarHidden(true, animated: true) //Hide
self.navigationController?.setNavigationBarHidden(false, animated: true) //SHow




uinavigationbar