স্থিতি দণ্ড অদৃশ্য হবে না


112

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

আমি এক্সকোড 5 এবং আইওএস 7 ব্যবহার করছি এবং স্ট্যাটাস বারটি অগ্রগামীভাবে অক্ষম করার চেষ্টা করেছি

  ([[UIApplication sharedApplication] setStatusBarHidden:YES    
      withAnimation:UIStatusBarAnimationFade];),

ইনফিটলিস্ট ফাইলে এবং .xib ফাইলটিতে অ্যাসিবিউটর ইন্সপেক্টর ব্যবহার করে। কিছুই কাজ করে না।

কোন ধারনা?

উত্তর:


220

আপনার অ্যাপ্লিকেশনটির রুট ভিউ নিয়ন্ত্রণকারীটিতে নিম্নলিখিত পদ্ধতিটি যুক্ত করার চেষ্টা করুন:

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

2
কীভাবে এটি বিশ্বব্যাপী করবেন?
jjxtra

16
এছাড়াও, অ্যাপল ডক্সে যেমন বলা হয়েছে, আপনাকে [self setNeedsStatusBarAppearanceUpdate];ডিফল্ট মান (ডিফল্ট মান হ'ল) ​​ব্যতীত অন্য কোনও কিছু দিয়ে এই পদ্ধতিটি কল করার পরে কল করা উচিত ।
ম্যান্ডারসন

3
@ সাইকোড্যাড আরও বিশ্বব্যাপী সমাধানের জন্য আমার উত্তরটি পরীক্ষা করুন।
ইদান

2
নিখুঁত তোমাকে ধন্যবাদ. আমি ঠিক বুঝতে পারি না যে আইওএস 7 কেন এটি করছে এবং এক্সআইবিবিগুলিকে সম্মান দিচ্ছে না যেখানে কোনও স্ট্যাটাস বার সেটিংস নেই!
justinhartman

1
স্ট্যাকের সাথে যুক্ত ভিউকন্ট্রোলারে এটি যুক্ত করা সেই ভিউকন্ট্রোলারের স্ট্যাটাসবারটি আড়াল করার জন্য আমার যা প্রয়োজন তা হল; এই ভিউকন্ট্রোলারটি সরানো হলে স্থিতিবারটি ফিরে আসে।
ম্যাকডি

126

আপনার এই মানটি প্লিস্টে যুক্ত করা উচিত: " কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন " এবং " NO " এ সেট করুন ।

এটি আপনাকে লুকানো মোডে স্থিতি দণ্ড সেট করতে সক্ষম করবে । এটি অন্য প্রদত্ত উত্তরের তুলনায় বৈশ্বিক সেট করে।

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


2
এটি বের করার জন্য আমাকে অনেক সময় নিয়েছে। এটি এমন একটি সমস্যা যা আমি মনে করি প্রত্যেকেরই হবে এবং অ্যাপল এটির যথেষ্ট উল্লেখ করেনি। সাহায্য করে খুশি ...
আইডান

7
সূক্ষ্ম কাজ করে, "স্ট্যাটাস বারটি প্রাথমিকভাবে লুকানো আছে" এর জন্য .plist মানটি সেট করতে ভুলবেন না।
andreas-सुपरমার্ট

1
বাহ, একমাত্র সেই জিনিসটি ছিল যা কোবল্ড ২ ডি ২.১.০ এবং আইওএস with এর সাথে কাজ করেছিল, অনেক অনেক ধন্যবাদ!
বাইনারি

5
অ্যাপল সত্যই পিছনে সামঞ্জস্যের চ্যাম্পিয়ন নয়। আসুন সবাই তাদের বাঁশিতে নাচুন এবং আমাদের অ্যাপ্লিকেশনগুলির প্রতিটি আপডেট করুন। দুঃখিত, হতাশা vent আপেল দ্বারা তৈরি
হেনরিক এরল্যান্ডসন

1
অবশেষে এটি আমার জন্য কাজ করে। কারণ - (বিओওএল) মডেলভিউতে কাজ করে না এমন পছন্দের স্ট্যাটাসবার্ডেডিন পদ্ধতি।
উত্কাল প্যাটেল

73

আপনার পোস্ট করা কোডটি আইওএস 6.1 এবং এর নীচে কাজ করে। আইওএস 7 এর জন্য, অ্যাপল প্রতিটি দর্শনের জন্য সরাসরি স্ট্যাটাস বারটি নিয়ন্ত্রণ করতে নতুন পদ্ধতি উপলব্ধ করেছে। আপনার তথ্য.পালিস্টে এই বিকল্পটি বন্ধ করা আপনাকে স্থিতি দণ্ডটি আড়াল করতে সক্ষম করবে, কমপক্ষে বর্তমান বিকাশকারী পূর্বরূপ (4) এর জন্য।

এটি যোগ করুন এবং কোনওতে সেট করুন

রেফারেন্সের জন্য, দয়া করে অ্যাপল এর বিকাশকারী পোর্টালে আইওএস 7 রূপান্তর গাইডটি দেখুন।


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

ধন্যবাদ এটি আমাকে সহায়তা করে যেহেতু আমি এটি আমার সম্পূর্ণ অ্যাপ্লিকেশনটির জন্য লুকিয়ে রাখতে চাই
কেভিনল

2
আমার মতে, এই উত্তরটি সেরা উত্তর হওয়া উচিত -> এটি এখানে বিকাশকারী.অ্যাপল.
com

5
আমি এটি করেছি, তবে দেখে মনে হচ্ছে এটি কেবল স্ট্যাটাস বারটি লুকিয়ে রেখেছে, তবে, আমার অ্যাপ্লিকেশনটি এখনও স্ট্যাটাস বারটি যে পরিমাণ স্থান গ্রহণ করবে তার পরিমাণ দ্বারা 'ধাক্কা মেরে' আছে, এবং আমি এখনও ব্যাটারি সূচকটি দেখতে পাচ্ছি!
vedran

36

ভাল আমি আমার সমস্ত অ্যাপ্লিকেশন এবং "অ্যাপ্লিকেশন" -info.plist এ স্থিতি দণ্ডটি আড়াল করার চেষ্টা করি এবং "ইনফরমেশন সম্পত্তি তালিকা" অভিধানে আমি দুটি সারি যুক্ত করি "আমি নিয়ামক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন" সেট করা নেই এবং " স্থিতি দণ্ডটি প্রথমে লুকানো থাকে "হ্যাঁ সেট করুন এবং আমার জন্য কাজ করে n_n '

plist তথ্য


2
এটি বিকাশকারীদের যখন জিনিসগুলি করার নতুন উপায়ের জন্য অ্যাপ্লিকেশনটি ঠিক করার সময় নেই তখন আইওএস on-তে যেমন পরিকল্পনা করা হয়েছে কেবল পুরানো অ্যাপ্লিকেশনগুলিকে চালিত করার জন্য ডিজাইন করা একটি সামঞ্জস্যতা মোডে জোর করে। পরিবর্তে, আপনার নিজের ভিউ নিয়ন্ত্রণকারীগুলিতে পছন্দসই * পদ্ধতিগুলি প্রয়োগ করতে হবে।
lhunath

17

তবে, আপনি যদি ইউআইআইমেজপিকার ব্যবহার করেন, আবার স্ট্যাটাস বারটি উপস্থিত হয়।

সেক্ষেত্রে আপনার নীচে স্ট্যাটাস বারটি লুকানো উচিত,

- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// for iOS7
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }

2
আমি একই সমস্যা হচ্ছে। আমি ইউআইআইমেজপিকার ব্যবহার না করা অবধি স্ট্যাটাস বারটি লুকানো থাকে। আমি আপনার সমাধান চেষ্টা করেছিলাম এবং এটি আমার পক্ষে কাজ করে না। আপনার পোস্টে কোড ছাড়াও আমাকে কী যুক্ত করার দরকার ছিল?
Dev01

@ ওয়াটওয়ুট আইও যোগ করেছে - (বিওএল) পছন্দসত্তা স্ট্যাটাসবারহিডান Y রিটার্ন হ্যাঁ; control কন্ট্রোলার দেখতে। এটি চেষ্টা করুন।
অ্যালোনস

আমার জন্য কাজ করে না বলে মনে হচ্ছে .. আসলেই কি ফোন করা উচিত setNeedsStatusBarAppearanceUpdate?
RyanM

আমার একটি বোতাম ক্লিকের স্ট্যাটাস বারটি আড়াল করা দরকার। আমি কোড নীচে চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি। অনুগ্রহপূর্বক আমাকে কি কেউ সাহায্য করতে পারবেন. [[ইউআইএএপ্লিকেশন শেয়ারড অ্যাপ্লিকেশন] সেট স্ট্যাটাসবারহিডেন: হ্যাঁ];
জানিথেশন

8

কিছুক্ষণ অনুসন্ধানের পরে, অবশেষে আমি একটি খুব সাধারণ সমাধান পেয়েছি যা সমস্যার যত্নও নেয় UIImagePickerController

অন্যান্য উত্তরে উল্লিখিত হিসাবে, আপনার অ্যাপডেলিগেট ডিড ফিনিশলঞ্চিংয়ে আপনার স্ট্যাটাস বারটি লুকিয়ে রাখুন এবং "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন" কোনও স্থানে সেট করুন।

তারপরে, আপনার অ্যাপ্লিকেশনটিতে:

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

এবং ভয়েলা - আপনার স্ট্যাটাস বারটি লুকানো থাকবে এমনকি যখন ইউআইআইজেজপিকার কনট্রোলার সর্বাগ্রে থাকে।

এটি আপনি যখনই কোনও ইউআইআইজেইপস পিকারকন্ট্রোলার উপস্থাপন করেন ততবার এটি 'পুনরায় রাখার' চেয়ে ভাল কারণ এটি অ্যাপ্লিকেশনটিতে লুকানো থাকে।


2
যদিও আইপ্যাডে আইওএস 7-তে কোনও কিছু এখনও ভাঙা মনে হচ্ছে - ইউআইআইজেইপ পিকারকন্ট্রোলার দ্বিতীয়বার যখন দেখানো হয়েছে তখনও স্ট্যাটাস বারটি ছুঁড়ে ফেলেছে ... হুরর ... :-( বর্তমানে আমি অ্যাপ্লিকেশনটি প্রতিটি ভিউতে আবার লুকিয়ে রাখার পাশাপাশি ব্যবহার করছি উইলঅ্যাপিয়ার । সুতরাং এটি যদি আবার অল্প সময়ের জন্য নোংরা দেখায় তা আবার দ্রুত স্থির হয়ে যায়
ikuramedia

1
এটিই একমাত্র পদ্ধতি যা আইওএস 8 এ আমার জন্য কাজ করেছিল ... কোনওভাবে পছন্দসই স্ট্যাটাসবারহিডিন আমার ভিউ কন্ট্রোলারের সাথে পরিচিত হয় না।
মোজুবা

7

কোনও নির্দিষ্ট ইউআইভিউউকন্ট্রোলারে স্ট্যাটাস বারটি আড়াল করতে, কেবল এটি যুক্ত করুন:

-(BOOL)prefersStatusBarHidden
{
    return YES;
}

আশাকরি এটা সাহায্য করবে !


!! এটিই সমাধান যা আইওএস 9.2 এ আমার জন্য কাজ করেছিল, প্লিস্ট পরিবর্তন করে কোনও প্রভাব ফেলেনি।
মাইকো

5

আপনি প্রকল্পের সারাংশ থেকে আড়াল করতে পারেন। প্রবর্তনের সময় একটি চেকবক্স লুকানো আছে।

স্ন্যাপশট দেখুন

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


4

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

- (void)viewWillDisappear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
     }

3

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


2

আমি ইউআইআইমেজপিকারের সাথেও সমস্যা ছিল। অ্যালোনসের উত্তরের অনুরূপ, আমার সমাধানটি নিম্নলিখিত ছিল। আমি এই লাইন বা কোড যুক্ত করেছি:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

এই ফাংশন:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

আমি এটি আইওএস 6 বা তার বেশি পুরানো দিয়ে পরীক্ষা করে দেখিনি তবে এটি আইওএস 7 এ দুর্দান্ত কাজ করে।


2

সুইফট সলিউশন

এটি কেবল আপনার দেখার নিয়ন্ত্রকদের সাথে যুক্ত করুন:

override func prefersStatusBarHidden() -> Bool {
    return true
}

0

আমি এক্সকোড 6 ব্যবহার করছি, এই সমাধানটি আমার জন্য আইওএস 7 এবং 8 এ কাজ করে:

প্রথমে প্লিস্ট ফাইলটিতে "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি" সেট করুন O

দ্বিতীয়ত, অ্যাপডেলিগেটে এটি যুক্ত করুন:

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

0

আমার সমস্যাটি হ'ল আমি ভিউ কন্ট্রোলার কনটেন্ট ব্যবহার করি। উদাহরণস্বরূপ নেভিগেশন নিয়ামককে এমবেড করা কেবলমাত্র শীর্ষ সর্বাধিক দেখা নিয়ন্ত্রক, স্ট্যাটাস বারটি আড়াল বা প্রদর্শন করতে পারেন।

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