আইওএস সুইফট অ্যাপে ট্যাব বারটি লুকান


91

আমি কীভাবে আমার আইওএস সুইফট অ্যাপ্লিকেশনটিতে ট্যাব বারটি লুকিয়ে রাখব তা বোঝার চেষ্টা করছি। আমি কোনও অভিনব অ্যানিমেশন বা কোনও কিছুর বিষয়ে চিন্তা করি না। ভিউডিডলড () ফাংশনটিতে আমি ঠিক রাখতে পারি।


ভিসিকে ধাক্কা দেওয়ার আগে এটি সেট করুন। vc.hidesBottomBarWhenPushed = trueকাজ করা উচিত। ম্যানুয়ালি ট্যাববারটি প্রদর্শন এবং আড়াল করবেন না।
অভিমুরলিধরণ

উত্তর:


214

আপনি কেবল আপনার ViewDidLoad()পদ্ধতিতে এটি ব্যবহার করতে পারেন ।

self.tabBarController?.tabBar.hidden = true

সুইফট 3.0, 4.0, 5.0 এর জন্য :

self.tabBarController?.tabBar.isHidden = true

অথবা আপনি এইভাবে ট্যাব বারের z অবস্থান পরিবর্তন করতে পারেন:

self.tabBarController?.tabBar.layer.zPosition = -1

এবং আপনি যদি এটি আবার দেখাতে চান তবে:

self.tabBarController?.tabBar.layer.zPosition = 0

14
ধর্মেশ, উত্তরের জন্য ধন্যবাদ। এটি সফলভাবে ট্যাব বারটি আড়াল করে, কিন্তু তারপরে টেবিল ভিউ স্ক্রিনটি পূরণ করে না। এটি কেবল কালো যেখানে ট্যাব বারটি হওয়া উচিত। আমার ধারণা, এটি স্ক্রিনে ফিট করার জন্য আরও একটি পদক্ষেপ আছে?
রবার্ট

4
তার জন্য সীমাবদ্ধতা যুক্ত করুন।
ধর্মেশ খেেনি

4
যুক্ত করতে "বাধা" কী কী?
db0

যদি আপনি সীমাবদ্ধতা ব্যবহার করেন তবে তার জন্য আপনি উচ্চতার সীমাবদ্ধতা পরিবর্তন করতে পারেন বা আপনি টেবিলভিউয়ের ফ্রেম পরিবর্তন করতে পারেন। @ db0
ধর্মেশ খেেনি

4
তবে ট্যাব বারটি স্পর্শটি নিতে পারে, অদৃশ্য ট্যাব বারের যে কোনও ট্যাবটির কাছে আলতো চাপুন। @ ধর্মেশখেনি
সি

140

গৃহীত উত্তরটি কাজ করে, তবে অন্য দর্শনে উত্তরণের একটি চপ্পি অ্যানিমেশন রয়েছে (ট্যাব বার অ্যানিমেশন)

এছাড়াও যোগ করতে চেয়েছিলেন যদিও কল্পেশের সমাধানটি আমার জন্য নিখুঁতভাবে কাজ করেছে, আমি জানতে পেরেছি যে প্রতিটি ভিউ কন্ট্রোলারের hidsBottomBarWhenPush (স্টোরিবোর্ডটি দেখুন। এবং এটি দুর্দান্ত কাজ করবে।

এখানে চিত্র বর্ণনা লিখুন

আপডেট: এটি নিশ্চিত জিনিস কিনা তা আমি নিশ্চিত নই, তবে অ্যাপলের ডকুমেন্টেশন পৃষ্ঠাতে যা বলা হয়েছে তা এখানে:

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

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


4
আমাদের কি করা উচিত। অন্যান্য জবাবগুলির চেয়ে অনেক ভাল যদি আপনি ভিউকন্ট্রোলার উপস্থাপন করার সময় কেবল এটি লুকিয়ে রাখতে চান
গ্যাব্রিয়েল গনক্যাল্ভস

কেন এটি সুইফট 4 এ কাজ করছে না ?? আমি ইতিমধ্যে বিকল্প টিক্, কিন্তু এটি এখনও প্রদর্শিত যখন আমি সেই বিশেষ দৃশ্য নিয়ামক যেতে
কেন

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

@ জাস্টিনভ্যাল্লি দয়া করে আমাকে উত্তরটিতে আপডেটটি কাজ করে কিনা তা জানতে দিন
অক্ষর ঠাকুর

4
ধন্যবাদ, স্বীকৃত উত্তরটি আমার জন্য একটি সমস্যা ছিল, যখন আমি যে ভিউটি থেকে আসছিলাম সেদিকে ফিরে যাই, তার জন্য ট্যাববারটিও অসন্তুষ্ট ছিল!
আবেদ নাসেরি

79

পুশ সেট করার আগে কন্ট্রোলারহাইডসবটমবারওয়েনপশড = সত্য

let objCreateEventVC = CreateEventVC()
objCreateEventVC.hidesBottomBarWhenPushed = true
self.navigationController?.pushViewController(objCreateEventVC, animated: false)

একগুচ্ছ কন্ট্রোলার যুক্ত করার সময় কাজ করে নাsetViewControllers
কেআর

27

ট্যাববারের হাইড প্রপার্টি সেট করার দরকার নেই।

সহজভাবে, ভিউকন্ট্রোলারে যান (স্টোরিবোর্ডে) -> অ্যাট্রিবিউট ইন্সপেক্টর -> 'দেখুন কন্ট্রোলার' বিভাগের অধীনে 'পুশের নীচে বারটি লুকান' চেকবক্সটি নির্বাচন করুন। এটি একটি কবজির মতো কাজ করে।

আপনি যদি 'ইসিডেড' পথে যান তবে আপনাকে প্রচুর হ্যান্ডলিং করতে হবে, অর্থাৎ আপনি ফিরে গেলে আবার প্রদর্শিত হবে এবং ট্যাববারটি লুকানোর পরে নীচের খালি স্থানটি সরিয়ে ফেলতে হবে।


4
এটি আসল উত্তর হওয়া উচিত। এটি আমাকে আমার ইউআই উপাদানগুলির জন্য কোনও ঝামেলা ছাড়াই সীমাবদ্ধতাগুলি সেট করতে দেয়।
কার্তিক কান্নান

4
Hide Bottom Bar on Pushইমোতে একটি অপ্রীতিকর অ্যানিমেশন রয়েছে।
টিওডর সিউরারু

আপনি যখন এই পৃষ্ঠাটি থেকে ফিরে আসবেন, ট্যাববারটি কিছুটা হিমশীতল হয়ে ফিরে আসে। এর কারণ কী বলে আপনি মনে করেন?
ইউনূস টি।


3

আপনি এটি এক্সটেনশনেও সেট করতে পারেন (ধর্মেশ খেেনি উত্তরটি ব্যবহার করুন)

extension UITabBar {
func tabsVisiblty(_ isVisiblty: Bool = true){
    if isVisiblty {
        self.isHidden = false
        self.layer.zPosition = 0
    } else {
        self.isHidden = true
        self.layer.zPosition = -1
    }
}

2

এই সুইফট পথ প্রোগ্রামেটিক্যালি হয় 4.0, 4.1, 4.2, 5.0 এবং পরে >:

tabBarController?.hidesBottomBarWhenPushed = true

বা

hidesBottomBarWhenPushed = true

@ নিকোস সত্য। প্রশ্ন / উত্তরে আপনি কোথায় একটি সরঞ্জাম বার সম্পর্কে কিছু পড়েন?
জে দো

ডকুমেন্টেশন থেকে: একটি ভিউলিয়ান মান নির্দেশ করে যে ভিউ কন্ট্রোলারটি কোনও নেভিগেশন নিয়ামককে চাপানো হলে পর্দার নীচে থাকা টুলবারটি লুকানো থাকে কিনা ating
নিকো এস

4
প্রশ্নটি ট্যাববারটি নয়টি টুলবার নয়
নিকো এস

@ নিকোস এই পরিস্থিতিতে একই ... লোল। স্পষ্টতই আপনি এটি চেষ্টা করেও বিরক্ত করেননি।
জে দো

4
প্রথমটি কাজ করে না, একটি সিগ সম্পাদন করার সময় বা ভিউ কন্ট্রোলারকে চাপ দেওয়ার আগে দ্বিতীয়টি যুক্ত করা উচিত।
গাল শাহার

1

নেভিগেশনবার এবং ট্যাববারটি আড়াল করতে আমি পরবর্তী ফাংশনটি ব্যবহার করি:

var tabBarHeight : CGFloat!

func fullScreenAction(){
    if navigationController?.isNavigationBarHidden ?? false {
        //Show navigationBar
        navigationController?.setNavigationBarHidden(false, animated: false)

        //Show tabBar
        tabBarController?.tabBar.isHidden = false
        //Update the height of tabBar
        if (!(tabBarController?.tabBar.frame.size.height.isEqual(to: 0))!) {
            tabBarHeight = self.tabBarController?.tabBar.frame.size.height
        }
        tabBarController?.tabBar.frame.size.height   = tabBarHeight
    } else {
        //Hide navigationBar
        navigationController?.setNavigationBarHidden(true, animated: false)

        //Hide tabBar
        tabBarController?.tabBar.isHidden = true
        //Update the height of tabBar
        tabBarHeight = tabBarController?.tabBar.frame.size.height
        tabBarController?.tabBar.frame.size.height   = 0

    }

}

যখন স্ক্রিন ওরিয়েন্টেশনটি ট্যাববারের উচ্চতাও পরিবর্তন করেছে, তাই আমি উচ্চতাটি পুনরায় আকার দিতে পুরো স্ক্রীন থেকে প্রস্থান করতে পরবর্তী ফাংশনটি ব্যবহার করব:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    if navigationController?.isNavigationBarHidden ?? false {
        navigationController?.setNavigationBarHidden(false, animated: false)
        tabBarController?.tabBar.isHidden = false
    }
}

আমি আশা করি এটি আপনার পক্ষে কার্যকর।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.