UIImagePickerController স্ট্যাটাস বারের উপস্থিতি ভঙ্গ করে


137

আমার .plist ফাইলটিতে আমার কাছে " নিয়ামক ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন " সেট করা আছে NO। তবে পরে UIImagePickerController, আমার অ্যাপটি এমন আচরণ করে যে বিকল্পটি সেট করা আছে YES

আমার অ্যাপ্লিকেশনটিতে, আমি একটি উপাচার্য উপস্থাপন করি যা একটি উপস্থাপন করে UIImagePickerController

সমস্যাটি এরকম হয়:

  • ফটো চয়নকারী উপস্থাপিত হওয়ার পরে, যখন কোনও ফটো লাইব্রেরি বাছাই করা হয়, স্থিতি বারের পাঠ্যের রঙ পরিবর্তন হয়।
  • তারপরে একবার, UIImagePickerControllerবরখাস্ত হয়ে যায়, স্থিতি দণ্ডের অধীনে আমার বাকী সমস্ত অ্যাপ্লিকেশনের জন্য স্থিতি বারের ব্যবধান এবং অন্যান্য নিয়ন্ত্রকদের জন্য সমস্ত নেভিগেশন বারের পরিবর্তন হয়।

আমার দেখার নিয়ামকগুলিতে স্থিতি দণ্ড পরিচালনা না করে কি এটি সমাধান করার কোনও উপায় আছে?


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

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

stackoverflow.com/questions/21225978/… সরল সমাধান সহ একই প্রশ্ন
টিং উ

আরে @ অ্যালেক্সএল, কেন এমন হয় জানেন?
শবরিনাথ পাব্বা

উত্তর:


192

উপরের সমাধানগুলির মধ্যে আমার পক্ষে কোনও কাজ হয়নি, তবে রিচ manmanমান এবং আইওএস_ডিভি_09 এর উত্তরগুলি একত্রিত করে আমি ধারাবাহিকভাবে কাজ করার সমাধান পেয়েছি:

UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;

এবং

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

এই দুর্দান্ত সমাধান সম্পর্কে। ২০১৪ / আইওএস 8-এর জন্য আমি এমন কিছু ক্ষেত্রে পেয়েছি যা আপনাকে অবশ্যই অন্তর্ভুক্ত করতে হবে prefersStatusBarHiddenএবং সম্ভবত childViewControllerForStatusBarHidden...

-(void)navigationController:(UINavigationController *)navigationController
        willShowViewController:(UIViewController *)viewController
        animated:(BOOL)animated
    {
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }

-(BOOL)prefersStatusBarHidden   // iOS8 definitely needs this one. checked.
    {
    return YES;
    }

-(UIViewController *)childViewControllerForStatusBarHidden
    {
    return nil;
    }

-(void)showCamera
    {
    self.cameraController = [[UIImagePickerController alloc] init];
    self.cameraController.delegate = (id)self; // dpjanes solution!
    etc...

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


3
এই কৌশলটি (একজন রিচ 86মান বলেছিলেন): "যেহেতু ইউআইআইমেজপিকার কনট্রোলার এক ধরণের নেভিগেশন নিয়ন্ত্রক, তাই আপনি নিজেকে ইউআইএনএভিগেশন কন্ট্রোলার প্রতিনিধি হিসাবেও সেট করছেন" "
বেটো

2
ইউআইআইমেগপিকারকে বরখাস্ত করার পরে কী হবে ..? আমি স্ট্যাটাসবারটি মিথ্যা লুকিয়ে সেট করি তবে এটি ব্যাকগ্রাউন্ড কালো হয়ে যাচ্ছে।
নিতিন গোহেল 11'14

আপনি কি উপরের প্রশ্ন অনুসারে প্লাস্টিক সেট আপ করেছেন?
dpjanes

ইউআইজিএজপিগ্রিকারকন্ট্রোলারসোর্স টাইপ ফোটো লাইবারি ব্যবহার করার সময়, কিছু অ্যালবাম খোলার পরে, এবং কিছুটা পিছনে প্যান করে, এবং অঙ্গভঙ্গিটি বাতিল করার সময় আপনি কি বিষয়টি লক্ষ্য করেছেন?
কুকোস্ক

3
এটি কাজ করে, যদিও স্ট্যাটাস বারটি খুব বিড়বিড় করে পপ করে। আমি অ্যাপলের সাথে একটি বাগ দায়ের করেছি।
jjxtra

84

আমি আজ এই একই সমস্যার মুখোমুখি হয়েছি। এখানে আমার সমাধান।

ভিউ কন্ট্রোলারে যিনি চিত্র চয়নকারীকে কল করেন, নিজেকে চিত্র পিকারের প্রতিনিধি হিসাবে সেট করুন। (আপনি সম্ভবত ইতিমধ্যে এটি করছেন)

UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;

যেহেতু ইউআইআইজিএজপিক্সার কন্ট্রোলার এক ধরণের নেভিগেশন নিয়ন্ত্রক, তাই আপনি নিজেকে ইউআইএনএভিগেশন কন্ট্রোলার প্রতিনিধি হিসাবে সেট করছেন। তারপরে:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}

আপনি যে স্টাইলটি খুঁজছেন তা দিয়ে ইউআইএসটিটাসবারস্টাইললাইট কনটেন্টকে প্রতিস্থাপন করুন।


10

যদি আপনার .plist ফাইলে আপনার 'নিয়ন্ত্রণ নিয়ন্ত্রক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি' কোনওতে সেট করা থাকে তবে গৃহীত উত্তরটি কাজ করবে। যদি আপনাকে অন্য কিছু ভিউ কন্ট্রোলারের স্ট্যাটাস বারটি নিয়ন্ত্রণ করতে হয় এবং এই বিকল্পটি হ্যাঁ সেট করা থাকে তবে ইউআইআইমেজপিকার কনট্রোলারকে সঠিকভাবে আচরণ করার জন্য অন্য উপায়টি সাবক্লাসিং করে

// .h
@interface MYImagePickerController : UIImagePickerController
@end

// .m
@implementation MYImagePickerController
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent; // change this to match your style
}
@end

6

আমিও একই সমস্যার মুখোমুখি হয়েছি।

এখানে আমার সমাধান। আপনি যে চিত্রটি পিকরভিউ খুলছেন সেখান থেকে যে ভিউ কন্ট্রোলার রয়েছে তার ভিউউইলঅপায়ার এ রাখুন

-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];

[[UIApplication sharedApplication] setStatusBarHidden:YES];

}

4

আপনি এই চেষ্টা করতে পারেন? আমি মনে করি প্রয়োজনীয়তা স্ট্যাটাসবার অ্যাপেরেন্স আপডেট কাজ করবে।

1 -Set UIViewControllerBasedStatusBarAppearance to NO.
2- Call [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
3- [self setNeedsStatusBarAppearanceUpdate];

4

আমি এটি সঠিক পরিচালনা করার জন্য পেয়েছি, এর দুটি অংশ রয়েছে parts

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
}


- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
...

ইউআইআইমেজপিকার কনট্রোলার নিজেই ভিউ কন্ট্রোলারগুলি উপস্থাপন করে, তাই এই প্রতিনিধি স্ট্যাকের সমস্ত উপস্থাপকদের জন্য কাজ করে।

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


3

আমারও একই সমস্যা ছিল। ইনফরমেশন লিস্টে যোগ করুন: "কোনও" মান সহ "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বার উপস্থিতি দেখুন"

এখানে https://stackoverflow.com/a/19211669 উদাহরণ

এই সমাধানটি আমার পক্ষে কাজ করে।


2

এটি সম্ভবত একটি বাগ। আমি "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি" টি ইয়েস এ সেট করে এবং প্রতিটি ভিউ নিয়ামককে নিম্নলিখিত কোডটিতে আটকানো দিয়ে সমস্যার সমাধান করেছি:

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

তারপরে আমার অ্যাপটি প্রত্যাশার মতো আচরণ করে।


2

ইউআইআইমেজপিকারে স্ট্যাটাস বারটি আড়াল করার জন্য:

-

 (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}

এবং যখন ইউআইআইজেজপিকারটি স্থিতি দণ্ডটি লুকানোর জন্য বরখাস্ত হয় নিয়ামকটিতে নীচের কোডটি ব্যবহার করুন:

-(void) viewWillAppear:(BOOL)animated{
    [super viewWillAppear:YES];

    [[UIApplication sharedApplication] setStatusBarHidden:YES];

}

2

এটা চেষ্টা কর ....

এটি উভয় ক্ষেত্রেই কাজ করবে অর্থাৎ আপনি বর্তমানমডালভিউ কনট্রোলার এবং পুশভিউ কনট্রোলার ব্যবহার করেন কিনা

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;

প্রতিনিধি পদ্ধতি

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [picker dismissViewControllerAnimated:YES completion:^{}];
}


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [picker dismissViewControllerAnimated:YES completion:nil];
}

2

উপরের সমস্ত কিছুই আমার পক্ষে কাজ করেনি। আমি এতে উপস্থাপনা শৈলীতে পরিবর্তন করে সমস্যার সমাধান করেছি:

imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;

2

উপরের সমাধানগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি।

আমি মডেল ভিউ কন্ট্রোলার হিসাবে ইউআইআইমেজপিকার কনট্রোলার উপস্থাপন করি। UIImagePickerController কে বরখাস্ত করার পরে স্থিতি দণ্ডের অবস্থাটি ছিল:

[UIApplication sharedApplication].statusBarOrientation = 0 (UIDeviceOrientationUnknown)
[UIApplication sharedApplication].statusBarFrame = { 0, 0, 0, 0}

যে সমাধানটি আমার জন্য সমস্যার সমাধান করেছিল তা ইউআইআইজেজপিকার কনট্রোলারকে বরখাস্ত করার পরে স্থিতি বারোরিয়েন্টেশন পুনরুদ্ধার করছিল:

UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
[self.viewController presentViewController:cameraUI animated:true completion:^(void){ }];

...

[self.viewController dismissViewControllerAnimated:animated completion:^(void){
    [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;
}];

2

এই কোডটি আমাকে স্ট্যাটাস বার শৈলীতে কাস্টমাইজ করতে সহায়তা করেছে।

সম্পাদনা করুন: "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন" == হ্যাঁ এই সমাধানটি কাজ করে

@implementation UIImagePickerController (IOS7_StatusBarStyle)

-(UIViewController*)childViewControllerForStatusBarStyle
{
   return nil;
}

-(UIStatusBarStyle)preferredStatusBarStyle
{
   return UIStatusBarStyleLightContent;
}

@end

2

উপরের সমস্ত উত্তর ঠিক আছে এবং সহায়তা করতে পারে।

বিভিন্ন আইওএস সংস্করণে চালিত অ্যাপ্লিকেশনটি পরিচালনা করতে আমার একই সমস্যা ছিল ।

UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

if(IS_IOS8_AND_UP) {
    imagePickerController.modalPresentationStyle = UIModalPresentationFullScreen;
} else {
    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
}

imagePickerController.delegate = self;
[self presentViewController:imagePickerController animated:YES completion:nil];

তারপরে, প্রতিনিধি হিসাবে:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    /* Cancel button color  */
    _imagePicker.navigationBar.tintColor = <custom_color>
    /* Status bar color */
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}

2

তবুও আরেকটি সমাধান যা কিছু পরিস্থিতিতে কাজ করতে পারে।

let imagePicker =  UIImagePickerController()
imagePicker.sourceType = .PhotoLibrary
imagePicker.navigationBar.barStyle = .Black

1

[self setNeedsStatusBarAppearanceUpdate]আপনার উপস্থাপনার দৃশ্য নিয়ামকটি আবার উপস্থিত হওয়ার সময় কি আপনি কল করার চেষ্টা করেছেন ?


সম্ভবত এটি তখন একটি বাগ - আমি একটি প্রকল্পের সাথে একটি রাডার ফাইল করব এবং স্ট্যাটাস বারটি পরিচালনা করার পুরানো সিস্টেমে ফিরে যাব :(
অ্যাশ ফুরো

1

আমি আইওএস 7-তে ইউআইআইমেজপিকার কনট্রোলারের স্ট্যাটাস বারটি আড়াল করার চেষ্টা করি, তবে আমি কীভাবে এটি করব তা এখনও জানি না। আমি ব্যবহার করি

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

যে ভিউকন্ট্রোলারটিতে ইউআইআইজিজেপপিকারকন্ট্রোলার কল রয়েছে এবং প্লিস্ট ফাইলটিতে "দেখুন নিয়ামক-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি = কোনও নয়" সেট করুন। আশা করি এটি সাহায্য করতে পারে।


1

এটা চেষ্টা কর :

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;

এবং প্রোটোকল বাস্তবায়নে, এটি ব্যবহার করুন:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

1

এটি আমার জন্য এটি সমাধান করেছে ...:

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [picker dismissViewControllerAnimated:YES completion:nil];
}

1

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

যখন ইউআইআইজিপইপিকারকন্ট্রোলার এর মতামত উপস্থাপন করে তখন আমি ডিফল্টরূপে স্ট্যাটাস বার শৈলী সেট করি যেহেতু ডিফল্ট ব্যাকগ্রাউন্ডের রঙ হালকা ধূসর।

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
}

তারপরে, যখন চিত্র পিকারটি বরখাস্ত হয়, আমি এটিকে আবার সেট করে রাখি UIStatusBarStyleLightContent

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //work

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

    [self dismissViewControllerAnimated:YES completion:NULL];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{ 
    //work

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

    [self dismissViewControllerAnimated:YES completion:NULL];
}

1

এই ক্ষেত্রে, আমরা 2 টি পদক্ষেপ ব্যবহার করছি

প্রথম পদক্ষেপে: info.plist এ যুক্ত করুন: "NO" মান সহ "কন্ট্রোলার-ভিত্তিক স্ট্যাটাস বারের উপস্থিতি দেখুন"

দ্বিতীয় পদক্ষেপে: ইউআইআইমেজপিকার কনট্রোলারের প্রতিনিধি সহ এই কোডটি ব্যবহার / কল করুন

 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
     if([navigationController isKindOfClass:[UIImagePickerController class]])
         [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
 }

আইওএস-7 এর ক্ষেত্রে আরও একটি ফাংশন যুক্ত করুন

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

1

আইওএস 8.1 হিসাবে, মনে হচ্ছে তারা শেষ পর্যন্ত এই বাগটি ঠিক করেছে! আমি আমার কোড থেকে নিযুক্ত সমস্ত কাজের সরিয়ে দিতে সক্ষম হয়েছি।


1

ডিফল্ট আইওএস 8 ব্যবহার করে স্ট্যাটাস বারটি যখন আমি গোপন রাখতে চাইতাম তখন আমার সমস্যা ছিল।

আমি যে সমাধানটি পেয়েছি তা হ'ল, presentPopoverআমার ভিউ কন্ট্রোলারের কাছ থেকে সরাসরি কল করার পরে আমি করেছি:

    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate) withObject:nil afterDelay:0.01];

আমাকে এটি আমার প্রধান ভিউ নিয়ন্ত্রকের সাথে যুক্ত করতে হয়েছিল:

- (UIViewController *)childViewControllerForStatusBarHidden
{
    return nil;
}

1

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

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

let pickerController = UIImagePickerController()
pickerController.delegate = self

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
        UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
    }

-1

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

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