ইউআইভিউকন্ট্রোলারের উপর ক্লিয়ার কালার ইউআইভিউউকন্ট্রোলার প্রদর্শন করুন


150

UIViewControllerঅন্য UIViewControllerদৃশ্যের শীর্ষে আমার একটি মতামত / মডেল হিসাবে একটি ভিউ রয়েছে যেমন সাবউভিউ / মডেলটি স্বচ্ছ হওয়া উচিত এবং সাবভিউতে যা কিছু উপাদান যুক্ত হবে তা দৃশ্যমান হওয়া উচিত। সমস্যাটি হ'ল আমার কাছে সাবউভিউটি হল ক্লিয়ার কালার পরিবর্তে কালো পটভূমি shows আমি UIViewব্ল্যাক ব্যাকগ্রাউন্ড নয় ক্লিয়ার কালার হিসাবে তৈরি করার চেষ্টা করছি । এর মধ্যে দোষ কি কেউ জানেন? কোন পরামর্শ প্রশংসা।

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];

[vc setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentModalViewController:vc animated:NO];  

SecondViewController.m

- (void)viewDidLoad 
{
     [super viewDidLoad];
     self.view.opaque = YES;
     self.view.backgroundColor = [UIColor clearColor];
}

সমাধান : আমি সমস্যাগুলি স্থির করেছি। এটি আইফোন এবং আইপ্যাড উভয়ের জন্যই এত ভাল কাজ করছে। কোনও কালো ব্যাকগ্রাউন্ড ছাড়াই মডেল ভিউ কন্ট্রোলার কেবল ক্লারার / স্বচ্ছ। শুধুমাত্র যে কাজটা আমি পরিবর্তন করতে হবে আমি প্রতিস্থাপিত হয় UIModalPresentationFullScreenথেকে UIModalPresentationCurrentContext। কত সহজ!

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];

বিজ্ঞপ্তি: আপনি যদি এর কোনও modalPresentationStyleসম্পত্তি ব্যবহার করছেন navigationController:

FirstViewController.m

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self presentViewController:vc animated:NO completion:nil];

বিজ্ঞপ্তি: খারাপ খবরটি হ'ল উপরের সমাধানটি আইওএস 7 এ কাজ করে না The সুসংবাদটি হ'ল আমি iOS7 এর জন্য বিষয়টি ঠিক করেছি! আমি কারও কাছে সাহায্য চেয়েছিলাম এবং তিনি এখানে যা বলেছিলেন তা এখানে:

মোডলি ভিউ কন্ট্রোলার উপস্থাপন করার সময়, আইওএস উপস্থাপনের সময়কালের জন্য ভিউ কন্ট্রোলার থেকে নীচে ভিউ কন্ট্রোলারগুলি সরিয়ে দেয়। আপনার আধুনিকভাবে উপস্থাপিত ভিউ কন্ট্রোলারের দৃষ্টিভঙ্গি স্বচ্ছ হলেও অ্যাপ্লিকেশন উইন্ডোটি বাদ দিয়ে এর নীচে কিছুই নেই যা কালো। আইওএস 7 একটি নতুন মডেল উপস্থাপনা শৈলী প্রবর্তন করেছে UIModalPresentationCustom, যার ফলে আইওএস উপস্থাপন করা ভিউ কন্ট্রোলারের নীচে দৃশ্যগুলি সরিয়ে না দেয়। যাইহোক, এই মডেল উপস্থাপনা শৈলীটি ব্যবহার করার জন্য, উপস্থাপনাটি পরিচালনা করতে এবং অ্যানিমেশনগুলি খারিজ করতে আপনাকে অবশ্যই নিজের ট্রানজিশনের প্রতিনিধি সরবরাহ করতে হবে। এটি ডাব্লুডাব্লুডিসি 2013 https://developer.apple.com/wwdc/videos/?id=218 থেকে 'দেখুন কন্ট্রোলার ব্যবহার করে কাস্টম ট্রানজিশনস'-এর আলাপে বর্ণিত হয়েছে যা আপনার নিজের ট্রানজিশনের প্রতিনিধিকে কীভাবে প্রয়োগ করতে পারে তাও অন্তর্ভুক্ত করে।

আপনি উপরের ইস্যুটির জন্য আমার সমাধানটি iOS7 এ দেখতে পাবেন: https://github.com/hightch/iOS-7- কাস্টম- মডেলভিউ নিয়ন্ত্রণকারী- ট্রান্সশিশন


1
আপনি রুট ভিউ কনট্রোলারের মডেলপ্রেজেন্টেশন স্টাইল সেট করেছেন তা নিশ্চিত করুন, অন্যথায় এটি কাজ করবে না
থারস্টেন

দয়া করে এই উত্তরে মন্তব্য কটাক্ষপাত করা stackoverflow.com/a/25990081/1418457 , এটি কাজ করে
onmyway133

এই স্ট্যাকওভারফ্লো.com/q/27598846/1603234 আমাকে হাসায় , এখন আপনার পালা :)
হেমাং

আমাকে সেল্ফ.মডালপ্রেজেন্টেশনস্টাইল = ইউআইএমডালপ্রেজেন্টেশনকেনারকন্টেক্সটেক্স করতে হয়েছিল; এটিকে কাজ করতে উপস্থাপিত ভিউ কন্ট্রোলারের সাথে, উপস্থাপকের সাথে নয়।
Tulleb

1
নীচে ব্রোডি এর উত্তর চেক করুন। modalViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext; সমস্যাটি সমাধান করবে,
গুডএসপিএনডি 3

উত্তর:


143

iOS8 + +

আইওএস 8+ এ আপনি এখন স্বচ্ছ পটভূমির সাথে একটি ভিউ কন্ট্রোলার উপস্থাপন করতে নতুন মোডালপ্রেইভেনশন স্টাইল ইউআইএমডালপ্রেসেশন ওভার কর্নারকন্টেক্সট ব্যবহার করতে পারেন:

MyModalViewController *modalViewController = [[MyModalViewController alloc] init];
modalViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;           
[self presentViewController:modalViewController animated:YES completion:nil];    

5
গ্রহণযোগ্য উত্তর হওয়া উচিত। পূর্বে গৃহীত উত্তর উত্তরাধিকারসূত্র কারণে এখনও বৈধ, তবে এটি প্রস্তাবিত পদ্ধতি।
টমাস্ক বাক

3
আপনি যদি কেবল আইওএস 8 এর জন্য বিকাশ করছেন তবে এই উত্তরটি দিয়ে যান! এটি কাজ করে
মারিও কারভালহো

2
এটি ভাল, তবে শেষ লাইনটি হওয়া উচিত নয় [self presentViewController:modalViewController animated:YES completion:nil];? (টার্গেটকন্ট্রোলারের পরিবর্তে)?
সুপারডুপারট্যাঙ্গো

3
আমার জন্য এটি কাজ করার জন্য আমি মোডালভিউকন্ট্রোলআরভিউ.ব্যাকগ্রাউন্ড কালার = ইউআইক্লোলার ক্লেয়ার কালার () সমাধানের জন্য ধন্যবাদ
প্রমোদ

যে কেউ আমাকে পুশভিউ কনট্রোলারের জন্য কোড সরবরাহ করতে পারে (আমি নেভিগেশন নিয়ামক হিসাবে বোঝাচ্ছি)।
অলোক

140

সমাধান : আমি সমস্যাগুলি স্থির করেছি। এটি আইফোন এবং আইপ্যাড উভয়ের জন্যই এত ভাল কাজ করছে। কোনও কালো ব্যাকগ্রাউন্ড ছাড়াই মডেল ভিউ কন্ট্রোলার কেবল ক্লারার / স্বচ্ছ। আমার যে পরিবর্তন করতে হবে তা কেবলমাত্র আমি ইউআইমোডালপ্রেজেন্টেশনফুলস্ক্রিনকে ইউআইমোডালপ্রেসিয়েশন কনভার্ট কনটেক্সটে প্রতিস্থাপন করেছি। কত সহজ!

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

বিজ্ঞপ্তি: আপনি যদি নেভিগেশন নিয়ন্ত্রণকারীর একটি মডেলপ্রেসেশন স্টাইল সম্পত্তি ব্যবহার করছেন:

FirstViewController.m

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
    vc.view.backgroundColor = [UIColor clearColor];
    self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
    [self presentViewController:vc animated:NO completion:nil];

বিজ্ঞপ্তি: খারাপ খবরটি হ'ল উপরের সমাধানটি আইওএস 7 এ কাজ করে না The সুসংবাদটি হ'ল আমি iOS7 এর জন্য বিষয়টি ঠিক করেছি! আমি কারও কাছে সাহায্য চেয়েছিলাম এবং তিনি এখানে যা বলেছিলেন তা এখানে:

মোডলি ভিউ কন্ট্রোলার উপস্থাপন করার সময়, আইওএস উপস্থাপনের সময়কালের জন্য ভিউ কন্ট্রোলার থেকে নীচে ভিউ কন্ট্রোলারগুলি সরিয়ে দেয়। আপনার আধুনিকভাবে উপস্থাপিত ভিউ কন্ট্রোলারের দৃষ্টিভঙ্গি স্বচ্ছ হলেও অ্যাপ্লিকেশন উইন্ডোটি বাদ দিয়ে এর নীচে কিছুই নেই যা কালো। আইওএস 7 একটি নতুন মডেল উপস্থাপনা শৈলী, ইউআইমোডালপ্রেজেনশন কাস্টম প্রবর্তন করেছে, যার ফলে আইওএস উপস্থাপন করা ভিউ কন্ট্রোলারের নীচে দৃশ্যগুলি সরিয়ে ফেলবে না। যাইহোক, এই মডেল উপস্থাপনা শৈলীটি ব্যবহার করার জন্য, উপস্থাপনাটি পরিচালনা করতে এবং অ্যানিমেশনগুলি খারিজ করতে আপনাকে অবশ্যই নিজের ট্রানজিশনের প্রতিনিধি সরবরাহ করতে হবে। এটি ডাব্লুডাব্লুডিসি 2013 https://developer.apple.com/wwdc/videos/?id=218 থেকে 'দেখুন কন্ট্রোলার ব্যবহার করে কাস্টম ট্রানজিশনস'-এর আলাপে বর্ণিত হয়েছে যা আপনার নিজের ট্রানজিশনের প্রতিনিধিকে কীভাবে প্রয়োগ করতে পারে তাও অন্তর্ভুক্ত করে।

আপনি উপরের ইস্যুটির জন্য আমার সমাধানটি iOS7 এ দেখতে পাবেন: https://github.com/hightch/iOS-7- কাস্টম- মডেলভিউ নিয়ন্ত্রণকারী- ট্রান্সশিশন


1
self.modalPresentationStyle = UIModalPresentationCurrentContext;করেছি.
অ্যাড্রিয়ানো লুকাস

4
বিটিডব্লিউ .. আমি দেখেছি যে self.modalPstreamationStyle = ইউআইমোডালপ্রেসিভেশনকেনারকন্টেক্সট; এটি অ্যানিমেশন সহ মডেলভিউ কনট্রোলার উপস্থাপন করছে না .. কোনও ধারণা?
দেবর্ষি

1
@ মীরাজ তারপরে মডেলপ্রেসেশন স্টাইলটি ইউআইওউডিয়ালপ্রেজেনশনফুলস্ক্রিনে সেট করে ইউআইভিউ কনট্রোলার দেখানোর আগে কাজ করা উচিতself.modalPresentationStyle = UIModalPresentationFullScreen; [self performSegueWithIdentifier:@"CustomSegue" sender:self];
হাইটেক

1
আইওএস 6 এবং 7 এ এটি চালানো হচ্ছে, উপস্থাপনাটি অ্যানিমেট করার সময় নতুন ভিউ কন্ট্রোলার স্পষ্ট, তবে এটি একবারে স্থির হয়ে গেলে পটভূমিটি কালো হয়ে যায়। বরখাস্ত অ্যানিমেট করার সময় এটি আবার পরিষ্কার হয়ে যায়। অন্য কারো এই সমস্যা ছিল?
ড্র সে সি

3
@pkamb আমি আইওএস 7 সমাধান আপডেট stackoverflow.com/a/11252969/1344459 আমি আশা করি তুমি সাহায্য করে।
হাইটেক

114

খাঁটি চাক্ষুষ চিন্তাবিদ এবং স্টোরিবোর্ড অনুরাগীদের জন্য, আপনি এটি করতে পারেন:

1. উপস্থাপনা দেখুন নিয়ন্ত্রক

প্রসঙ্গ নির্ধারণ করুন

2. উপস্থাপনা দেখুন নিয়ন্ত্রক

উপস্থাপনা: বর্তমান প্রসঙ্গে


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এটি কাজ করার জন্য আপনাকে যা যা করতে হবে তা হল, তারপরে পরিচ্ছন্ন করতে মডেল কন্ট্রোলারের উপর দৃশ্যের ব্যাকগ্রাউন্ড রঙ সেট করুন।
জেসি

সম্মত, স্টোরিবোর্ড বিকল্পগুলি এক্ষেত্রে কোডটি ওভাররাইট করে।
C0D3

17
এই উত্তরটি খুব মিষ্টি, আমার এখন ডায়াবেটিস।
জেনকোড

25

সুইফট 3 এবং আইওএস 10 সমাধান:

//create view controller
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "RoadTripPreviewViewController")
//remove black screen in background
vc.modalPresentationStyle = .overCurrentContext
//add clear color background
vc.view.backgroundColor = UIColor.clear
//present modal
self.present(vc, animated: true, completion: nil)

16

এটি এক্সকোড 7 বিটা 4 থেকে একটি নিয়ন্ত্রণ ড্র্যাগ সেগুন ব্যবহার করে। আপনার গন্তব্যের ব্যাকগ্রাউন্ডটি সাফ করার জন্য কেবল সেট করুন, এবং আইবিতে সেগু বৈশিষ্ট্যগুলি সেট করুন (এনবি। উপস্থাপনাটি "সম্পূর্ণ পর্দার ওভারও হতে পারে"):

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


2
ধন্যবাদ. আমি আপনার সিগু ফিক্সটি করেছি + ভিউ কন্ট্রোলারদের উত্তর @ পাসেভিন দিয়ে দিয়েছেন এবং এটি কার্যকর হয়েছে!
CSawy

1
এই আমার প্রশ্নের উত্তর। আপনাকে অনেক ধন্যবাদ. একটি আপ ভোট দিন: ডি
Nate4436271

8

আমি এটি iOS7 এবং iOS8 এ কাজ করার সহজতম উপায়টি খুঁজে পেয়েছি হ'ল আইওএস 8 এর কারণে মডেলপ্রেজেন্টভিসি (ভিউ কনট্রোলার যা আপনি আধুনিকভাবে উপস্থাপন করতে চান) তে ইউআইমোডালপ্রেজিশনওভারকন্টারকন্টেক্সট এ উপস্থাপনাটি স্টাইল যুক্ত করুন:

[modallyPresentedVC setModalPresentationStyle:UIModalPresentationOverCurrentContext];
[modallyPresentedVC.navigationController setModalPresentationStyle:UIModalPresentationOverCurrentContext];

আইওএস 7 এর কারণে উপস্থাপনাভিসি (নিয়ন্ত্রণকারী যা উপস্থাপিত উপস্থাপন করে) সম্পর্কিত ইউআইমোডালপ্রেজেশনেশন কর্নারকন্টেক্সট:

[presentingVC setModalPresentationStyle:UIModalPresentationCurrentContext];
[presentingVC.navigationController setModalPresentationStyle:UIModalPresentationCurrentContext];

কারণ iOS7 এবং iOS8 এ জিনিসগুলি আলাদাভাবে পরিচালনা করা হয়। অবশ্যই আপনি নেভিগেশন নিয়ন্ত্রণকারী বৈশিষ্ট্যগুলি সেট করতে হবে না যদি আপনি এটি ব্যবহার না করেন not আশা করি এইটি কাজ করবে.


আমার বেকন বাঁচা! ধন্যবাদ
হাঁস 20

5

সুইফট 2 সংস্করণ:

let vc = self.storyboard!.instantiateViewControllerWithIdentifier("YourViewController") as! YourViewController
vc.view.backgroundColor = UIColor.clearColor()
vc.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen // orOverCurrentContext to place under navigation
self.presentViewController(vc, animated: true, completion: nil)

4

অন্য উপায় (কাস্টম ট্রানজিশন তৈরি করার দরকার নেই এবং আইওএস 7 এ কাজ করে)

স্টোরিবোর্ড ব্যবহার:

চাইল্ড ভিউ কন্ট্রোলার স্বাধীনতার আকারের সাথে তৈরি করুন, দেখুন প্রস্থটি 500x500 এ সেট করুন (উদাহরণস্বরূপ) এবং পরবর্তী পদ্ধতি যুক্ত করুন:

- (void)viewWillLayoutSubviews{
    [super viewWillLayoutSubviews];
    self.view.superview.bounds = CGRectMake(0, 0, 500, 500);
    self.view.superview.backgroundColor = [UIColor clearColor];
}

তারপরে ফর্ম শীট দিয়ে একটি মডেল সেগু তৈরি করুন এবং এটি পরীক্ষা করুন।


তুমি চমৎকার!!! এটি আসলে কাজ করে !!! (আইবিতে "স্বাধীনতা" আকার নির্ধারণ করা এনিথিং কোজকে প্রভাবিত করে না এটি একটি সিমুলেটেড মেট্রিক, তবে যাইহোক, এটি কার্যকর হয় !!!) এবং এটি এত সহজ !!!
রাদু সিমিয়নেসকু

4

কাস্টম সেগুসের সাথে আইওএস 7 সমাধান:

CustomSegue.h
#import <UIKit/UIKit.h>

    @interface CustomSegue : UIStoryboardSegue <UIViewControllerTransitioningDelegate, UIViewControllerAnimatedTransitioning>

    @end



CustomSegue.m
#import "CustomSegue.h"

@implementation CustomSegue

-(void)perform {

    UIViewController* destViewController = (UIViewController*)[self destinationViewController];
    destViewController.view.backgroundColor = [UIColor clearColor];
    [destViewController setTransitioningDelegate:self];
    destViewController.modalPresentationStyle = UIModalPresentationCustom;
    [[self sourceViewController] presentViewController:[self destinationViewController] animated:YES completion:nil];
}


//===================================================================
// - UIViewControllerAnimatedTransitioning
//===================================================================

- (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext {
    return 0.25f;
}

- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext {

    UIView *inView = [transitionContext containerView];
    UIViewController* toVC = (UIViewController*)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
    UIViewController* fromVC = (UIViewController *)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];

    [inView addSubview:toVC.view];

    CGRect screenRect = [[UIScreen mainScreen] bounds];
    [toVC.view setFrame:CGRectMake(0, screenRect.size.height, fromVC.view.frame.size.width, fromVC.view.frame.size.height)];

    [UIView animateWithDuration:0.25f
                     animations:^{

                         [toVC.view setFrame:CGRectMake(0, 0, fromVC.view.frame.size.width, fromVC.view.frame.size.height)];
                     }
                     completion:^(BOOL finished) {
                         [transitionContext completeTransition:YES];
                     }];
}


//===================================================================
// - UIViewControllerTransitioningDelegate
//===================================================================

- (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source {

    return self;
}

- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed {
    //I will fix it later.
    //    AnimatedTransitioning *controller = [[AnimatedTransitioning alloc]init];
    //    controller.isPresenting = NO;
    //    return controller;
    return nil;
}

- (id <UIViewControllerInteractiveTransitioning>)interactionControllerForPresentation:(id <UIViewControllerAnimatedTransitioning>)animator {
    return nil;
}

- (id <UIViewControllerInteractiveTransitioning>)interactionControllerForDismissal:(id <UIViewControllerAnimatedTransitioning>)animator {
    return nil;
}

@end

হাইটেক কোডের ভিত্তিতে সমাধান।


আমি যখন [স্ব-বরখাস্ত ভিউকন্ট্রোলার অ্যানিমেটেড: হ্যাঁ সমাপ্তি: নাল] দ্বারা বরখাস্ত করি; আমি একটি ব্যতিক্রম পাই ??
আসাদুল্লাহ আলী

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

4

আমার জন্য এটি কাজ করে:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MMPushNotificationViewController"];

    vc.view.backgroundColor = [UIColor clearColor];
    self.modalPresentationStyle = UIModalPresentationCurrentContext;
#ifdef __IPHONE_8_0
    if(IS_OS_8_OR_LATER)
    {
        self.providesPresentationContextTransitionStyle = YES;
        self.definesPresentationContext = YES;
        [vc setModalPresentationStyle:UIModalPresentationOverCurrentContext];
    }
#endif


    [self presentViewController:vc animated:NO completion:nil];

MMPushNotificationViewControllerএটি হ'ল স্বচ্ছ ভিউ কন্ট্রোলার এবং আমি MMPushNotificationViewControllerএর বর্ণের বর্ণকে ক্লিয়ারকলার হিসাবে তৈরি করেছি। এখন আমি যা করেছি এবং আমার স্বচ্ছ ভিউ নিয়ন্ত্রণকারীকে তৈরি করেছি।


2

আইওএস 7 এর জন্য

আইওএস 7 কাস্টম ট্রানজিশনগুলি ব্যবহার করে এটি অর্জনের এখন একটি উপায় রয়েছে:

MyController * controller = [MyController new];
[controller setTransitioningDelegate:self.transitionController];
controller.modalPresentationStyle = UIModalPresentationCustom;
[self controller animated:YES completion:nil];

আপনার কাস্টম ট্রানজিশন তৈরি করতে আপনার 2 টি জিনিস প্রয়োজন:

  • একটি ট্রানজিশনডেলিগেট অবজেক্ট (বাস্তবায়ন করা হচ্ছে) <UIViewControllerTransitionDelegate> )
  • একটি "অ্যানিমেটেড ট্রান্সশিশনিং" অবজেক্ট (বাস্তবায়ন <UIViewControllerAnimatedTransitioning>)

আপনি এই টিউটোরিয়ালে কাস্টম ট্রানজিশনের আরও তথ্য পেতে পারেন ।


আপনি অ্যানিমেটর শ্রেণিতে মেইনভিউ নিয়ন্ত্রণকারী এবং দ্বিতীয় দেখার নিয়ামক শ্রেণি যুক্ত করার কোনও নির্দিষ্ট কারণ? আপনি কেন সরাসরি ইউআইভিউকন্ট্রোলার * টুভিসি = (ইউআইভিউকন্ট্রোলার *) ব্যবহার করেননি [ট্রানজিশন কনটেক্সট ভিউ কন্ট্রোলার ফরকি: UITransitionContextToViewControllerKey]; ইউআইভিউকন্ট্রোলার * থেকেভিসি = (ইউআইভিউকন্ট্রোলার *) [ট্রানজিশন কনটেক্সট ভিউ কন্ট্রোলারফোরকি: UITransitionContextFromViewControllerKey];
সত্যম রাইকার

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

2

ওয়ার্কস গ্রেট উপর সহ iOS7 এবং iOS8

UIViewController* vc=[[UIViewController alloc]initWithNibName:@"VC" bundle:nil];

vc.view.alpha=0.7;
[vc setModalPresentationStyle:UIModalPresentationOverCurrentContext];

self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;

[self presentViewController:vc animated:NO completion:nil];

দ্বিতীয় সেরা উত্তরের একটি সদৃশ।
টমাস্ক বেক

2

আপনি ভিউটিতে 'পুনরায় যুক্ত' করতে পারেন।

OneViewController *vc = [[OneViewController alloc] init];
if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]) {
    [self presentViewController:vc animated:YES completion:nil];
} else {
    [self presentModalViewController:vc animated:YES];
}

[[[UIApplication sharedApplication] keyWindow] insertSubview:self.view atIndex:0];

এবং এইভাবে উপস্থাপনাটি অ্যানিমেটেড হতে পারে।


1

আইওএস 7 এর জন্য এবং কেবল ইন্টারফেস বিল্ডার ব্যবহার করে মডেল উপস্থাপনার সাথে জড়িত সমস্ত ভিউ কন্ট্রোলারের উপর উপস্থাপনাটিকে "ওভার কারেন্ট কনটেক্সট" এ সেট করে সম্পন্ন করা যায়। এমনকি নেভিগেশন নিয়ন্ত্রকদের জন্য for

উদাহরণস্বরূপ, এই সমস্ত দেখুন কন্ট্রোলারের উপর এটি সেট করুন:

নাভকন্ট্রোলার -> রুটভিউ কনট্রোলার -> মডালভিউ কনট্রোলার

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


0

আমি স্টোরিবোর্ড / ইন্টারফেস বিল্ডারের সাথে খুব বেশি খেলিনি, তবে আমার কাছে কী ঘটেছিল তা হ'ল আপনি দৃশ্যটি পরিষ্কার রঙের (অর্থাৎ 100% আলফা / দেখুন-থ্রো) হতে এবং এটিকে অস্বচ্ছ হতে বলছেন ( 0% আলফা - সম্পূর্ণ শক্ত)। এই দুটি জিনিস জাল বলে মনে হচ্ছে না। আমি self.view.opaque = YES;লাইনটি মন্তব্য করব এবং দেখি এটি কার্যকর হয় কিনা;)

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


আমি স্ব.ভিউ.ওপেক = হ্যাঁ মন্তব্য করার চেষ্টা করেছি; লাইন এবং এটি কাজ করে না। :-(
হাইটেক

আপনি আমার উত্তরের দ্বিতীয় অংশটি পড়েছেন? আপনার সেটআপের উপর নির্ভর করে আপনি যা চান তা করতে সক্ষম হবেন না। ক্লিয়ার কালার ভিসির পিছনে আপনি কী রাখছেন? হতে পারে আমরা এটিকে বাছাই করতে পারি
WendiKidd

-3

উপস্থাপনার দর্শনটিতে কেবল "স্ব.মোডালপ্রেজেন্টেশনটি স্টাইল = ইউআইএমডালপ্রেজেন্টেশন কর্নারকন্টেক্সট;" ব্যবহার করুন

ভাল কাজ করবে :)


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