如何在目标c中弹出popout整个视图?(代码片段)

author author     2022-12-28     639

关键词:

我在ViewController中有四个视图作为iPad应用程序。每个视图都有一个不同的按钮和图表控制器。我需要在用户点击特定视图时弹出整个视图。我怎样才能实现这一目标呢?

答案

要以正确的方式执行此操作,我建议使用一点动画弹出您的VIEW。 首先在您的.h文件中添加CAAnimationDelegate:

   @interface ViewController : UIViewController <CAAnimationDelegate>

然后在你的.m文件中

   CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"position"];
   goOut.delegate = self; 
   // Choose animation duration in seconds, 0 if you dont want.
   [goOut setDuration:0.5]; 
   [goOut setRepeatCount:0];
   // You can play with A and B to specify the direction from where your VIEW will leave the screen
   [goOut setToValue:[NSValue valueWithCGPoint:CGPointMake(VIEW.center.x + A, VIEW.center.y + B)]]; 
   [VIEW.layer addAnimation:goOut forKey:@"position"];

最后只需隐藏VIEW即可

    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 
         if (flag) 
              [VIEW setHidden:YES];
         
    

现在,如果你想要你的VIEW改变它的框架并获得屏幕大小只是改变

    CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"position"];
    [goOut setToValue:[NSValue valueWithCGPoint:CGPointMake(VIEW.center.x + A, VIEW.center.y + B)]];
    [VIEW.layer addAnimation:goOut forKey:@"position"];

     CABasicAnimation *goOut = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
     [goOut setToValue: [NSValue valueWithCGSize:CGSizeMake(self.view.frame.size.width,self.view.frame.size.height)]];
     [VIEW.layer addAnimation:goOut forKey:@"bounds.size"];

并且在这种情况下不要隐藏你的VIEW;)

如何从情节提要的堆栈中弹出上一个视图?

】如何从情节提要的堆栈中弹出上一个视图?【英文标题】:HowcanIpopthepreviousviewfromthestackinthestoryboard?【发布时间】:2014-05-2722:58:51【问题描述】:我有一个带有3个视图控制器的应用程序。我使用pushsegues从A->B->C推送。在B推... 查看详情

如何从堆栈中弹出视图控制器而不导航到它们

】如何从堆栈中弹出视图控制器而不导航到它们【英文标题】:Howtopopviewcontrollersfromthestackwithoutnavigatingtothem【发布时间】:2016-12-0814:35:01【问题描述】:基本上,我有3个视图控制器,A、B和C。A和B都有一个后退按钮,当用户向... 查看详情

如何从模态视图中弹出ToRootViewController?

】如何从模态视图中弹出ToRootViewController?【英文标题】:HowtopopToRootViewControllerfromwithinamodalview?【发布时间】:2011-05-0206:31:44【问题描述】:我有一组典型的UITableViewController视图。在所有视图上都有一个按钮,用于显示模型视图... 查看详情

SwiftUI - 如何在 SwiftUI 中弹出到特定视图?

】SwiftUI-如何在SwiftUI中弹出到特定视图?【英文标题】:SwiftUI-HowyoucanpoptospecificviewinSwiftUI?【发布时间】:2019-11-1206:29:09【问题描述】:有没有办法在SwiftUI中实现popToViewController(vc)等价物?例如,如果我有以下流程:视图1->视... 查看详情

在展开的 segue 中弹出到根视图

】在展开的segue中弹出到根视图【英文标题】:Poptorootviewinanunwindsegue【发布时间】:2014-02-0522:28:01【问题描述】:我的视图控制器顺序如下:A->(推)->B->(模态)->C我使用unwindsegue从C返回到B,它可以工作。但是我想直接从C... 查看详情

在导航控制器中弹出到根视图

...推送的视图控制器中做到这一点......请您帮助我并指点我如何做到这一点?【问题讨论】:【参考方案1】:[self 查看详情

在不同的选项卡中弹出视图控制器

】在不同的选项卡中弹出视图控制器【英文标题】:poppingaviewcontrollerindifferenttab【发布时间】:2015-09-2212:30:08【问题描述】:更新这段代码似乎做了我想做的事,但我很好奇这是否是一个糟糕的策略。functabBarController(tabBarControlle... 查看详情

在 iPhone 应用程序中弹出视图后的 SIGABRT 信号

】在iPhone应用程序中弹出视图后的SIGABRT信号【英文标题】:SIGABRTsignalafterpoppingviewiniPhoneapplication【发布时间】:2011-02-2417:34:43【问题描述】:我正在开发一个在与按钮调用相关的例程完成后崩溃的iPhone应用程序。我正在弹出导... 查看详情

如何在目标 c 中使用 XIB 在登录视图后创建滑出菜单

】如何在目标c中使用XIB在登录视图后创建滑出菜单【英文标题】:HowtocreateaSlideOutMenuafterloginviewusingXIBinobjectivec【发布时间】:2016-11-2311:10:35【问题描述】:我是iOS新手,在创建滑出菜单时遇到问题。我搜索并找到了该示例,但... 查看详情

从堆栈中弹出导航控制器/创建双视图

】从堆栈中弹出导航控制器/创建双视图【英文标题】:PoppingaNavigationControllerfromstack/Creatingadualview【发布时间】:2016-12-2317:34:07【问题描述】:我在我的应用中实现了一个聊天系统。我希望此视图从右侧滑入(并覆盖整个屏幕)... 查看详情

如何在 swiftui 中弹出到 TabView 应用程序中的特定视图。我也使用了 StackNavigation 但不在 swiftui 中工作

】如何在swiftui中弹出到TabView应用程序中的特定视图。我也使用了StackNavigation但不在swiftui中工作【英文标题】:HowtopoptospecificviewintheTabViewApplicationinswiftui.IusedStackNavigationalsobutnotworkinginswiftui【发布时间】:2021-12-0406:43:33【问题描... 查看详情

cef中弹出窗口的处理(代码片段)

...如果不想在弹出窗口中打开网页,即想要在当前窗体加载目标Url,就需要重写OnBeforePopup,它是属于CefLifeSpanHandler类中的./*--cef(optional_param=target_url,optional_param=target_frame_name)--*/boolSimpleHandler::OnBeforePopup(  CefRefPtr<CefBrowser>brows... 查看详情

在搜索栏中弹出表格视图,swift 2

】在搜索栏中弹出表格视图,swift2【英文标题】:Popupwithtableviewinsearchbar,swift2【发布时间】:2016-04-1017:18:44【问题描述】:我正在尝试使用Google地点和自动完成进行操作,关于Google地点的自动完成我得到了结果,但我希望将结果... 查看详情

从堆栈中弹出特定片段并删除其他片段

...andremoveothers【发布时间】:2016-12-1515:05:51【问题描述】:如何从堆栈中弹出特定片段并从片段中删除其他片段?例如,这些是我的片段,我知道我在E中。A->B->C->D->E想从E回到B并清除C和D。我该怎么做?【问题讨论】:【... 查看详情

在 Swift 中的 Nav Controller 中弹出 2 个视图控制器

】在Swift中的NavController中弹出2个视图控制器【英文标题】:Pop2viewcontrollersinNavControllerinSwift【发布时间】:2014-10-0101:13:36【问题描述】:我找到了许多使用Objective-C在UINavigationController中弹出2UIViewControllers的方法,但是当我尝试将... 查看详情

为啥从导航堆栈中弹出视图时键盘不显示?

】为啥从导航堆栈中弹出视图时键盘不显示?【英文标题】:Whydoesthekeyboardnotshowwhenaviewispoppedfromthenavigationstack?为什么从导航堆栈中弹出视图时键盘不显示?【发布时间】:2011-11-1518:22:46【问题描述】:我在一个视图中有几个UITe... 查看详情

当特定 ViewController 类被推入另一个选项卡中的堆栈时,如何从堆栈中弹出视图控制器?

】当特定ViewController类被推入另一个选项卡中的堆栈时,如何从堆栈中弹出视图控制器?【英文标题】:HowtopopaviewcontrollerfromastackwhenaparticularViewControllerclasswaspushedontostackinanothertab?【发布时间】:2016-07-1101:47:35【问题描述】:我... 查看详情

在service中弹出toast和dialog(代码片段)

众所周知,Toast必须在UI主线程上才能正常显示,而在Service中是无法获得Acivity的Context的,在service中想显示出Toast只需将show的消息发送给主线程Looper就可以了Handlerhandler=newHandler(Looper.getMainLooper());handler.post(newRunnabl 查看详情