Tag: presentviewcontroller

尝试closures视图控制器时的警告(模式中的模态)

当我的iOS应用程序第一次启动时,我会自动打开一个“欢迎”模式,如下所示: UIViewController *intro = [self.storyboard instantiateViewControllerWithIdentifier:@"intro"]; intro.modalPresentationStyle = UIModalPresentationFullScreen; //Show the modal [self presentViewController:intro animated:NO completion:nil]; 在这种模式下,用户被指示将应用程序链接到Dropbox。 他们点击一个button,触发这个: [[DBSession sharedSession] linkFromController:self]; 这是一个Dropbox SDK方法,以另一种模式打开DropboxauthenticationUIWebView,如下所示: http : //d.pr/i/6ZnC 一旦他们login,模式自动animationclosures。 然后我尝试closures原始的介绍模式: [self dismissViewControllerAnimated:YES completion:nil]; 但是,我得到这个警告, 模式不closures : 警告:正在进行演示或解散时尝试从视图控制器<PPIntroViewController:0xf296ab0>中解除! 以下是我所尝试的: 我在dismissViewControllerAnimated之前放了一个人工延迟,让Dropbox模式closures,但是并没有帮助: [NSThread sleepForTimeInterval:2.0]; 我试过closuresanimation: [self dismissViewControllerAnimated:NO completion:nil]; 这也没有帮助。 我已经尝试检查模态解雇已经在进行中: if(![self isBeingDismissed]){ … }并且没有运气。 有任何想法吗? 我怎样才能确定什么是提出/解雇,并防止模式closures? iOS 7 + Xcode […]

将在整个视图控制器多个presentViewController方法调用导致iOS中的内存泄漏?

我知道有很多与这个话题有关的讨论。 但在所有的讨论中,都与2个视图控制器(A&B)进行了讨论。 我的情况是相似的,但不同。 当有多个视图控制器如A,B,C,D时会发生什么。 所以呈现的stream程如同移动一样, 视图控制器A(主页)呈现视图控制器B(列表)。 然后从视图控制器B呈现视图控制器C(细节)。然后从视图控制器C呈现视图控制器D(高级细节)。 然后从视图控制器D呈现视图控制器A,以直接导航到家! 最好的做法是什么?

从iOS中的“呈现视图控制器”推送视图

简而言之:我如何从提出的ViewController PushViewController? 简单来说 : 我有MainViewController ,其中我有一个button点击button,我提出了一个名为LoginViewController的视图。 在这个页面( LoginViewController ),我再次有button ,点击,我尝试推我的视图控制器(称为HomeViewController )它不推动。 这是我的代码片段, MainViewController.m – (IBAction)LoginClicked:(id)sender { LoginViewController *vc = [[LoginViewController alloc] init]; [self presentViewController:vc animated:YES completion:nil]; } LoginViewController.m – (IBAction)buttonActionMethodOnLoginView:(id)sender{ NSLog(@"viewControllers %@",APPDELEGATE.nav.viewControllers); //LoginViewController is not in this array HomeViewController *obj = [[HomeViewController alloc] init]; [self.navigationController pushViewController:obj animated:YES]; } 但它不适合我。 另外,在pushed之前我打印a stack of view controllers ,但是它没有LoginViewController […]

推出视图控制器后推视图控制器

我有这个导航堆栈 RootVC —> VC1 – >(出示) – > ModalVC 我有VC2 (不在导航堆栈中)。 在展示ModalVC时 ,我想点击我的ModalVC中的buttonclosuresModalVC,然后在VC1之后将VC2推入导航堆栈。 它应该是这样的: RootVC —> VC1 —> VC2 我尝试了很多方法来制作它,但是只有当我返回到我的RootVC时才推动事件触发。 我试图与代表: 在ModalVC上点击: [self dismissViewControllerAnimated:YES completion:^{ if ([self.delegate respondsToSelector:@selector(dismissAndPush:)]) { [self.delegate performSelector:@selector(dismissAndPush:) withObject:VC2]; } }]; 在VC1 : – (void)dismissAndPush:(UIViewController *)vc { [self.navigationController pushViewController:vc animated:NO]; } 请帮助理解这种行为。 我的错误在哪里?

当视图控制器以模态方式呈现时,在iOS 9中未调用“viewWillTransitionToSize:”

我从另一个展示视图控制器: – (void)showModalView { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; MySecViewController *mySecViewController = [storyboard instantiateViewControllerWithIdentifier:@"secController"]; mySecViewController.delegate = self; [self presentViewController:mySecViewController animated:YES completion:nil]; } 然后在呈现的UIViewController ,方法viewWillTransitionToSize:withTransitionCoordinator:在iOS 8调用,但不在iOS 9调用… 谢谢

presentOpenInMenuFromRect不工作DocumentHandler.h – QuickLook

我正在使用documenthandler的cordova插件,如果我点击button,我得到的文档处理程序从PDF文件处理程序的工作正常,以便我可以将PDF保存到iBooks。 现在,而不是在查看器中打开文档,并单击共享button,然后再次单击以保存到iBooks我需要能够触发分享button,而无需打开文档。 我知道这可以使用presentOpenInMenuFromRect而不是presentViewController来完成,但由于某些原因,下面的代码不起作用: #import "DocumentHandler.h" @implementation DocumentHandler – (void)HandleDocumentWithURL:(CDVInvokedUrlCommand*)command; { CDVPluginResult *commandResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@""]; __weak DocumentHandler* weakSelf = self; dispatch_queue_t asyncQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(asyncQueue, ^{ NSDictionary* dict = [command.arguments objectAtIndex:0]; NSString* urlStr = dict[@"url"]; NSURL* url = [NSURL URLWithString:urlStr]; NSData* dat = [NSData dataWithContentsOfURL:url]; NSString* fileName = [url lastPathComponent]; NSString* path = […]

如何解除自己的视图控制器,并在button水龙头中呈现另一个视图控制器?

假设我有3个视图控制器,分别标记为“A”,“B”和“C”。 现在,“A”是窗口的rootViewController,当点击一个button时,它会模式地显示“B”。 在“B”中,当一个button被轻敲时,应该被“A”解散,然后“A”将立即以模态方式呈现。如何做到这一点? 这是我的代码,希望实现这个目标,但我没有成功这样做。 在“A”viewController中,我声明了一个属性,在“B”viewController被“A”解除时,在头文件中保存一个块。 @property (nonatomic, copy) void (^presentZapLaunch)(void); 这是“A”viewController呈现方法呈现“B” -(void)presentNextViewCon { CYCGestureZapZapViewController *gestureViewCon = [[CYCGestureZapZapViewController alloc]init]; if (!self.presentZapLaunch) { __weak CYCZapZapViewController *weakRefCon = self; self.presentZapLaunch = ^{ CYCZapZapViewController *preventWeakRefCon = weakRefCon; CYCZapZapLaunchViewController *zapLaunch = [[CYCZapZapLaunchViewController alloc]init]; NSLog(@"Called"); [preventWeakRefCon presentViewController:zapLaunch animated:YES completion:nil]; }; } [self presentViewController:gestureViewCon animated:YES completion:nil]; } 这是被“A”解雇的“B”解雇方法,“A”应立即出现“C” -(void)presentNextViewCon { NSLog(@"Hello"); [self.presentingViewController […]