আইওএস 7 এ স্থিতি দণ্ডটি আড়াল করতে পারে না


267

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

কাজ করছে না:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

কাজ করছে না:

[UIApplication sharedApplication].statusBarHidden = YES;

অ্যাপল বিকাশকারী ফোরামে লগইন করতে পারবেন না


15
অস্পষ্ট, আমার উত্তরটি Xcode জড়িত এবং এটি সাধারণ জনগণকে দেখানো হয়েছে। এটি বলা খুব সাধারণ যে 'আপনি যদি এর উত্তর দেন, এটি এনডিএ লঙ্ঘন' .. .. বিকাশকারীরা তাদের সিদ্ধান্ত নিতে দিন ;-)
জ্যাক


কীভাবে স্ট্যাটাস বারটি গোপন করবেন প্রোগ্রামিয়্যাটিকভাবে বিশেষ ভিউকন্ট্রোলার?
ভাওয়িক

উত্তর:


558

আপনার অ্যাপ্লিকেশনগুলিতে প্লাস্ট ফাইলটিতে একটি সারি যুক্ত করুন এটি "নিয়ামক ভিত্তিক স্ট্যাটাস বারের চেহারা দেখুন" কল করুন এবং এটিকে সেট করুন না

মনে রাখবেন যে আপনি যদি অ্যাপটিতে UIImagePickerController ব্যবহার করছেন তবে এটি কার্যকরভাবে কাজ করে না।

http://www.openfl.org/developer/forums/general-discussion/iphone-5ios-7-cant-hide-status-bar/ থেকে , মিলিগ্রামের সমাধান

এক্সকোডে আপনার তথ্য সেটিংসে বেজ কন্ট্রোলারটি যুক্ত করে একটি উদাহরণ


3
অ্যামেজিং! আমি এই এক ঘন্টা নষ্ট! ধন্যবাদ!
ইদান

12
রেফারেন্সের জন্য, প্রকৃত তথ্য.প্লেস্ট ফাইলটিতে সঞ্চিত কাঁচা মান বলা হয় UIViewControllerBasedStatusBarAppearance
অ্যাডাম রোজেনফিল্ড

55
এই পদ্ধতির সাথে একমাত্র সমস্যা হ'ল আপনি যদি চিত্রগুলি নির্বাচন করতে UIImagePickerController ব্যবহার করেন তবে এটি স্ট্যাটাস বারটি আরও একবার প্রদর্শিত হতে বাধ্য করবে this এটি প্রতিরোধের একমাত্র নিশ্চিত আগুনের উপায় হ'ল আপনার প্রতিটি দৃশ্যের নিয়ন্ত্রকের পছন্দসই স্ট্যাটাসবারহিডন পদ্ধতিটি প্রয়োগ করা এবং ইউআইভিউকন্ট্রোলারবিস্টস্ট্যাটাসবার অ্যাপ্লিকেশন পুনরায় সেট করা is plist সেটিংটি সত্য হতে হবে।
জেসন ফুস্টার্নবার্গ

5
অ্যাপল কেন এ পরিবর্তন করেছে তা আমি সত্যিই জানি না! ধন্যবাদ :)
মোহাম্মদ আমাইন

18
আপনারও হ্যাঁ সেট Status bar is initially hiddenকরতে হবে ।
জোড়ায়র

277

আপনার ভিউ কন্ট্রোলারে পদ্ধতি যুক্ত করুন।

- (BOOL)prefersStatusBarHidden {
    return YES;
}

35
যারা খুঁজছেন তাদের জন্য, আপনি যদি কিছু দৃশ্যে স্থিতি দণ্ডকে গতিশীলভাবে মুছতে চান তবে এটি করার উপায়। আপনার পদ্ধতিতে আপনি "নিয়ন্ত্রক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন" যা নির্ধারণ করেছেন তা নির্বিশেষে এই পদ্ধতিটি কাজ করে!
মিঃ টি

2
+1 খ / সি আমি স্থিতি দণ্ডটি গতিশীলরূপে দেখানোর / লুকানোর দক্ষতার সন্ধান করছি। পি-তালিকা সেটিং পদ্ধতি (উপরে @ স্যাটগির পোস্ট দেখুন) তবে বিশ্বব্যাপী স্ট্যাটাস বারটি দেখানোর / আড়াল করার সর্বোত্তম উপায়।
জনিবি

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

4
@ মিঃ টি আইওএস ৮-এ, এটি আর মনে হচ্ছে না। আপনি যদি ভিউ কন্ট্রোলার ভিত্তিক স্ট্যাটাস বারের উপস্থিতি NO তে সেট করে থাকেন prefersStatusBarHiddenএবং কোনও ভিউ কন্ট্রোলার থেকে সত্য ফিরে পান , এটি কাজ করবে না। স্ট্যাটাস বারটি এখনও উপস্থিত হয়।
ইসুর

1
@ Sসুরু আপনি কোন নম্বর স্থির করলেন না কেন? আপনি যদি YES এ সেট করে থাকেন তবে এটি প্রতিটি ক্ষেত্রে অবশ্যই নিয়ন্ত্রকের কাছে জানতে চাইবে না।
ইনডুডু

84

Plist এ নিম্নলিখিত বৈশিষ্ট্য যুক্ত করুন।

-> Status bar is initially hidden= হ্যাঁ

-> View controller-based status bar appearance= না

উভয় যোগ করুন - এখন স্ট্যাটাস বার অদৃশ্য হয়ে যাবে।


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

53

একক দর্শন স্থিতি বারটি আড়াল করতে আপনার ব্যবহার করা উচিত:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];

প্রথমে, এটি আমার পক্ষে কার্যকর হয়নি এবং তারপরে এই পদ্ধতির ডকুমেন্টেশনে একটি কর দেখায় যে: // আপনার অ্যাপ্লিকেশনটি ডিফল্ট ইউআইভিউউকন্ট্রোলার-ভিত্তিক স্ট্যাটাস বার সিস্টেমটি ব্যবহার করে যদি স্থিতি বারহিডন সেট করা কিছুই করে না।

এটি কী কী View controller-based status bar appearanceসেট করে যুক্ত করে প্লাস্ট ফাইলটিতে করতে হবে NO। এবং তারপর এটি কাজ করে।


16

স্থিতি বারটি আড়াল / দেখানোর জন্য উত্তরাধিকারের ইউএআইএপ্লিকেশন পদ্ধতিটি ব্যবহার করার জন্য, আপনার অ্যাপ্লিকেশনটিকে আইওএস 7 এর জন্য একটি প্লিস্ট মান সেট করতে হবে:

View-Controller Based Status Bar Appearance = NO

এই মানটি ডিফল্টভাবে হ্যাঁ সেট করা আছে। যদি আপনি এটিকে NO তে পরিবর্তন করেন তবে আপনি উত্তরাধিকার পদ্ধতিগুলি ব্যবহার করতে পারেন। যদি আপনি এটি হ্যাঁ সেট করে রেখে যান তবে আপনি এখনও স্থিতি বারটি আড়াল করতে পারেন তবে আপনার অ্যাপ্লিকেশনটিতে প্রতিটি ভিউ কন্ট্রোলার সাবক্লাস ওভাররাইড করতে হবে: prefersStatusBarHiddenহ্যাঁ ফিরে আসার জন্য।

আপনার অ্যাপ্লিকেশনটির যে কোনও সময় পরিবর্তনের জন্য স্ট্যাটাস বারের উপস্থিতি বা দৃশ্যমানতার প্রয়োজন হবে এবং ভিউ-কন্ট্রোলার ভিত্তিক স্ট্যাটাস বার উপস্থিতি হ্যাঁ সেট করা হয়েছে, আপনার বহিরাগত দেখার নিয়ামককে কল করতে হবে:

setNeedsStatusBarAppearanceUpdateAnimation


আমাকে কাস্টম আইওএস টার্গেট প্রোপার্টিগুলিতে আবেদন করতে হয়েছিল, কারণ সাধারণ
প্লিস্টে

16

আইওএস 7 এ স্থিতি দণ্ডটি আড়াল করতে আপনার 2 লাইনের কোডের প্রয়োজন

  1. inapplication: (UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsলিখুন

    [application setStatusBarHidden:YES];
  2. info.plist এ এটি যোগ করুন

    View-Controller Based Status Bar Appearance = NO

2
কেবল এটি পরিষ্কার করার জন্য, আপনি যদি এটি ফিনিশলান্চিংয়ের ভিতরে রাখেন তবে আপনি কেবল লিখতে পারেন [application setStatusBarHidden:YES];বাapplication.statusBarHidden = YES;
joel.d

উপরের উত্তরে টাইপো থাকতে পারে। "ভিউ-কন্ট্রোলার ভিত্তিক স্ট্যাটাস বারের উপস্থিতি = কোন" আমার পক্ষে কাজ করে না, তবে "নিয়ামক ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন = কোনও নয়" কাজ করে।
tmr

11

এই ইস্যুটির জন্য অনেকগুলি সংমিশ্রণ প্রস্তাব করা হয়েছে, তবে সমস্যাটি হ'ল আইওএস 6 এবং 7 স্ট্যাটাস বারটি আড়াল করতে বিভিন্ন পদ্ধতি ব্যবহার করে। আমি আইওএস on-এ আইওএস--স্টাইলের আচরণটি সক্ষম করতে প্লাস্ট সেটিংস সেট করতে কখনও সফল হইনি তবে আপনি যদি আইওএস 6++ সমর্থন করার জন্য আপনার অ্যাপটি তৈরি করে থাকেন তবে নির্দিষ্ট ভিউ নিয়ন্ত্রকের স্থিতিটি লুকিয়ে রাখার জন্য আপনাকে একবারে 3 টি পদ্ধতি ব্যবহার করতে হবে দণ্ড:

// for ios 7 
- (BOOL)prefersStatusBarHidden{
    return YES;
}

// for ios 6
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // explicitly set the bar to show or it will remain hidden for other view controllers
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

আপনার প্লাস্ট সেটিংস নির্বিশেষে এটি কাজ করা উচিত।


7

স্ট্যাটাস বারটি আড়াল করতে আমাকে নীচের দুটি পরিবর্তনই করতে হয়েছিল:

আপনি স্থিতি দণ্ডটি আড়াল করতে চান এমন দৃশ্যটি নিয়ন্ত্রকের সাথে এই কোডটি যুক্ত করুন:

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

এটি আপনার .plist ফাইলটিতে যুক্ত করুন (আপনার অ্যাপ্লিকেশন সেটিংসে 'তথ্য' তে যান)

View controller-based status bar appearance --- NO

তারপরে আপনি স্ট্যাটাস বারটি গোপন করতে এই লাইনটি কল করতে পারেন:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

6

এই মাত্র 2 লাইন তথ্য.প্লেস্ট ফাইলটিতে যুক্ত করুন। এটি iOS7 এবং পুরানো সংস্করণ উভয়েরই ফিক্স তৈরি করবে।

  • স্থিতি দণ্ডটি প্রথমে লুকানো হয় = হ্যাঁ
  • নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন = নেই N

প্রকল্পে নেভিগেট করুন এবং লক্ষ্যগুলি নির্বাচন করুন -> সাধারণ এবং "স্থিতি দণ্ড শৈলী ... অ্যাপ্লিকেশন প্রবর্তনের সময় লুকান" চেক বাক্সটি চেক করা হবে। এটি কাজ করবে।


6

এই সহজ পদ্ধতিটি ব্যবহার করে দেখুন:

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

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

4

আমার পক্ষে একমাত্র কাজটি হ'ল আপনার লিস্টে নিম্নলিখিতটি যুক্ত করা

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

4

সবচেয়ে সহজ পদ্ধতিতে আমি সমগ্র অ্যাপ্লিকেশন সর্বত্র স্ট্যাটাস বার লুকানোর জন্য পেয়েছি একটি তৈরি হয় categoryউপর UIViewControllerএবং অগ্রাহ্য prefersStatusBarHidden। এই পদ্ধতিতে আপনাকে প্রতিটি একক দর্শন নিয়ামকটিতে এই পদ্ধতিটি লিখতে হবে না।

UIViewController + + HideStatusBar.h

#import <UIKit/UIKit.h>

@interface UIViewController (HideStatusBar)

@end

UIViewController + + HideStatusBar.m

#import "UIViewController+HideStatusBar.h"

@implementation UIViewController (HideStatusBar)

//Pragma Marks suppress compiler warning in LLVM. 
//Technically, you shouldn't override methods by using a category, 
//but I feel that in this case it won't hurt so long as you truly 
//want every view controller to hide the status bar. 
//Other opinions on this are definitely welcome

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

#pragma clang diagnostic pop


@end

সেরা বাস্তব, সহ iOS7, অ-fakey সমাধান, মহান
Fattie

3
  1. প্লাস্টে যুক্ত করুন ----

    নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন --- না N

  2. প্রতিটি ভিউতে নিয়ন্ত্রক লিখুন

    - (void) viewDidLayoutSubviews
    {
        CGRect viewBounds = self.view.bounds;
        CGFloat topBarOffset = 20.0;
        viewBounds.origin.y = -topBarOffset;
        self.view.bounds = viewBounds;
    
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//for status bar style
    }

আইওএস in এ স্ট্যাটাস বার ইস্যুতে তবে অ্যাপ্লিকেশনের জন্য লক্ষ্যটি 5.1 বা তার বেশি হওয়া উচিত


3

এই থ্রেডের উত্তরগুলির মধ্যে অনেকগুলি উত্তর, তবে আপনি যদি গতিশীল কিছু করার চেষ্টা করছেন তবে আপনাকে শেষ পর্যন্ত কল করতে হবে তা আমার বোধগম্যতা understanding

[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

3

আইওএস 7 এ স্থিতি বারটি আড়াল করার পদক্ষেপগুলি:

1. আপনার অ্যাপ্লিকেশন তথ্য.পলিট ফাইল যান।

২.এন্ড সেট, কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন: বুলিয়ান না

আশা করি স্ট্যাটাস বারের সমস্যা সমাধান করেছি .....


3

আইওএস 7 এর জন্য একক দৃশ্যে ভিউ উইলাপিয়ার পদ্ধতিতে ব্যবহার করুন:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

স্থিতি দণ্ডের ব্যবহার প্রদর্শনের জন্য:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];


2

ইনফর্ম প্লিস্ট ফাইলটিতে নীচের সম্পত্তিটির জন্য একটি সারি যুক্ত করুন

সম্পত্তির নাম: নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতি দেখুন

মান: না


1

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

- (BOOL)prefersStatusBarHidden
    {
        return YES;
    }

1

আমি এখানে আমার প্রকল্পে পোস্ট করা সমস্ত অপশন চেষ্টা করেছিলাম এবং সেগুলি কার্যকর হবে না। আমি ভেবেছিলাম এটি আমার Xcodeএবং তারপরে অ্যাপটি আইওএস 7 এ আপডেট হয়েছে এবং কিছু সেটিংস কোথাও কোথাও গোলমাল হয়েছে। আমি সিদ্ধান্ত নিয়েছি যে এটির জন্য একটি সম্পূর্ণ নতুন প্রকল্প তৈরি করব এবং সাধারণের পরে কেবলমাত্র সেটিংস করুন: " Status bar is initially hidden = YES" এবং " View controller-based status bar appearance = NO" হিসাবে অনেকেই বলেছেন যে এটি সঠিকভাবে কাজ করেছে (যেমন কোনও স্ট্যাটাস বার নেই)।

সুতরাং আমার পরামর্শ যদি আপনি এমন একটি প্রকল্পে কাজ করছেন যা পুরানো সংস্করণ থেকে আইওএস 7 এ আপডেট হয়েছে এবং অন্য সমস্ত বিকল্প ব্যবহার করে দেখেছেন তবে নতুন প্রকল্প তৈরি করা।


আমি প্রথমে প্রতিটি পর্দার জন্য বিশ্বব্যাপী স্ট্যাটাস বারটি আড়াল করতে পারি তা নিশ্চিত করার জন্য আমি একই কৌশলটি ব্যবহার করেছি তবে আমার অ্যাপ্লিকেশনটি বেশ "সময়কেন্দ্রিক" হওয়ায় বেশিরভাগ পর্দার জন্য সময় প্রদর্শন করতে চেয়েছিলাম। এটি কেবলমাত্র একটি পর্দা যা আমি বিভিন্ন কারণে এটি বাদ দিতে চেয়েছিলাম। আমি আপনার প্যারামিটারগুলির বিপরীতে ব্যবহার করে শেষ করেছি: প্রাথমিকভাবে লুকানো = কোনও & ভিসি-ভিত্তিক স্থিতি দণ্ড উপস্থিতি = হ্যাঁ। তারপরে আমাকে (বিওএল) অগ্রাধিকার স্ট্যাটাসবারহিডেন পদ্ধতিটি (প্রত্যাবর্তন করা উচিত) যে ভিসিতে আমি এটি লুকিয়ে রাখতে চেয়েছিলাম সেখানে রাখতে হয়েছিল। সুন্দরভাবে কাজ করে। আমার যুক্ত করা উচিত যে আমার অ্যাপ্লিকেশনটি আইওএস 7-কেবলমাত্র অন্যান্য কারণে।
ববস্মেলস

1

2019 এর জন্য ...

কোনও স্থিতি বার সহ একটি অ্যাপ্লিকেশন তৈরি করতে,

তথ্য.প্লেস্ট ক্লিক করুন, "সারি যুক্ত করুন" এ ডান ক্লিক করুন

এই সেটিংস সহ এই দুটি যোগ করুন:

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

এখানেই শেষ এটা পেতে ওখানে যাও.




0

নির্দিষ্ট ভিউকন্ট্রোলারের জন্য স্থিতি বারটি আড়াল করতে

- (BOOL)prefersStatusBarHidden {
    return YES;
}

স্থিতি বার সেট করার জন্য আবেদনের জন্য লুকানো:

  • সেট View controller-based status bar appearanceথেকে NO.plist মধ্যে এবং application: didFinishLaunchingWithOptions:সেট: [application setStatusBarHidden:YES];

    দ্রষ্টব্য: সেটস্ট্যাটাসবারহিডেন: অবচিত

অথবা

  • প্রকল্পের সেটিংসে -> সাধারণ ট্যাব -> স্থাপনার তথ্য

    চেক Hide Status bar বক্স।


-1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.statusBarHidden = YES;
return YES;
}

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

যতক্ষণ দেখার নিয়ামক-ভিত্তিক স্থিতি দণ্ডের উপস্থিতি কোনওভাবে সেট করা থাকে না ততক্ষণ পর্যন্ত এটি সবচেয়ে পরিষ্কার পদ্ধতি।
ইভান ইসচে

-7

আপনি কেন "অ্যাপল বিকাশকারী ফোরামে লগইন করতে পারবেন না" তা আমি নিশ্চিত নই, তবে (এনডিএ লঙ্ঘন না করে) আপনি নিজের স্ট্যাটাস বারটি Xcode এর মাধ্যমেও আড়াল করতে পারবেন। এটি আপনার অ্যাপ্লিকেশন টার্গেটের একটি সাধারণ সেটিংস।এখানে চিত্র বর্ণনা লিখুন


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