标签: presentmodalviewcontroller

在ipad应用程序启动时显示模态视图

我想在启动ipad应用程序时有条件地显示登录屏幕.我不想让它成为默认segue的一部分,因为它们只需要定期登录,而不是每次都登录.

我的问题有很多 例子,但它们似乎都早于ios5.然而,当我使用故事板时,似乎没有任何效果.

为了减少这一点,*创建一个新的单一视图应用程序,使用storyboard*为故事板添加一个新的viewcontroller,给它一个标识符"loginScreen"*在每个视图上放置一个文本标签,以便在视觉上区分它们.*在appDelegate中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [self.window.rootViewController storyboard];
    UIViewController *loginController = [storyboard instantiateViewControllerWithIdentifier:@"loginScreen"];
    [self.window.rootViewController presentModalViewController:loginController animated:TRUE];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

从我看到的例子来看,这应该有效.但它仍然始终显示原始的rootViewController视图.虽然没有错误.

任何人都可以指出我错过的(可能很小的)事情吗?

uiapplicationdelegate presentmodalviewcontroller ios5 uistoryboard

6
推荐指数
1
解决办法
1711
查看次数

iOS:解除并呈现ModalViewController而无需访问其Parent ViewController

背景:我想解雇一个我之前提出过的模态视图,然后立即呈现viewController我刚刚用新信息解雇的视频.

问题:如果没有显示指向ViewController第一个ViewController模态的父级的显式指针,我就不会非常成功.我正在尝试编写这个有用viewController的代码,而不会弄乱前面的代码.

可能的领先优势:我一直在尝试一些事情:

1.)试图访问父母ViewController,这时我不知道如何.

2.)一旦获得父母的访问权限,我可以简单地应用以下代码:

UIViewController* toPresentViewController = [[UIViewController alloc] init];
    [self dismissViewControllerAnimated:YES completion:^{
        [parentViewControllerAccessor presentModalViewController:toPresentViewController animated:YES];
}];
Run Code Online (Sandbox Code Playgroud)

理论上,这应该适用于父母的访问权限viewController.我对其他方式持开放态度.

假设:您无权更改父级中的任何代码ViewController.

iphone ipad modalviewcontroller presentmodalviewcontroller ios

6
推荐指数
1
解决办法
2万
查看次数

如何从UIActivity View Controller中选择的UIActivity项目中呈现ModalViewController?

我正在开发一个在detailViewController中呈现一些数据的应用程序.我在导航栏中有一个rightBarButton,它提供了一个UIActivityViewController,它充满了我自己的UIActivity子程序项.它们中的大多数工作正常,因为它们只是从详细视图中将一个小方面改变为数据,但我需要其中一个在选择时打开modalViewController.我一直从控制台收到以下警告......

    Warning: Attempt to present <UINavigationController: 0x1fd00590>  
on <UITabBarController: 0x1fde1070> which is already presenting <MPActivityViewController: 0x1fd2f970>
Run Code Online (Sandbox Code Playgroud)

我想值得注意的是,应用程序不会崩溃,但模态视图也不会出现.我假设UIActivityViewController本身是一个模态视图,你只能一次显示其中一个,所以任务是弄清楚在ActivityView消失后如何执行我的segue,但那就是我难倒的地方.我欢迎任何帮助,想法或反馈.我已经尝试了谷歌,但没有太多运气,我认为因为UIActivityViewController是如此新.

这是我的设置到目前为止,我的UIActivity对象有一个委托设置到detailViewController的自定义协议,让detailViewController执行数据更改,然后更新其视图.

对于有问题的活动,应该提供modalView控制器,我尝试了一些方法,都得到了相同的警告.


这些都不是!!!


1)只是尝试从我的委托方法执行segue

- (void) activityDidRequestTransactionEdit
{
    NSLog(@"activityDidRequestTransactionEdit");
    [self performSegueWithIdentifier:@"editTransaction" sender:self];
}
Run Code Online (Sandbox Code Playgroud)

2)尝试在UIActivityViewController上设置一个完成块,并让我的委托方法设置一个bool标志,显示模态视图(self.editor)

[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed) {
    NSLog(@"completed dialog - activity: %@ - finished flag: %d", activityType, completed);
    if (completed && self.editor) {
        [self performSegueWithIdentifier:@"editTransaction" sender:self];
    }
}];
Run Code Online (Sandbox Code Playgroud)

3)继承UIActivityViewController本身,给它作为委托的detailView,并用我自己的完成块覆盖它的dismissViewControllerAnimated:方法

- (void) dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    [super dismissViewControllerAnimated:flag completion:^{
        [self.MPActivityDelegate activityDidRequestTransactionEdit];

    }];
}
Run Code Online (Sandbox Code Playgroud)

工作解决方案


在UIActivity子类中,您需要像这样重写此方法

- (UIViewController *) activityViewController {
    MPEditMyDataViewController …
Run Code Online (Sandbox Code Playgroud)

presentmodalviewcontroller ios6 uiactivityviewcontroller

6
推荐指数
1
解决办法
2953
查看次数

调整ModalViewController的大小并将其定位在iOS 7的中心位置

我试图通过减少其宽度和高度在iPad上显示modalView,但问题是它不是中心对齐的.在iOS 6中它过去工作正常,但在iOS 7中它不是中心对齐的.

以下是我的代码:

 m_helpQA = [[HelpQAViewController alloc]init];

 m_helpQA.modalPresentationStyle = UIModalPresentationFormSheet;      

 [self presentViewController:m_helpQA animated:YES completion:NULL];
 m_helpQA.view.superview.bounds = CGRectMake(0, 0, 350, 250);//Dimensions of ModalView.
Run Code Online (Sandbox Code Playgroud)

目前我正是这样做的

在此输入图像描述

ipad modalviewcontroller presentmodalviewcontroller ios7

6
推荐指数
1
解决办法
2984
查看次数

根据Core Spotlight搜索词从AppDelegate显示可重新关联的视图

我在我的应用程序中设置了Core Spotlight.我导航到导航控制器中的特定视图控制器,该控制器根据标题显示webview网页.例如:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray *restorableObjects))restorationHandler {

if ([[userActivity activityType] isEqualToString:CSSearchableItemActionType]) {
    // This activity represents an item indexed using Core Spotlight, so restore the context related to the unique identifier.
    // The unique identifier of the Core Spotlight item is set in the activity’s userInfo for the key CSSearchableItemActivityIdentifier.

    NSString *uniqueIdentifier = [userActivity.userInfo objectForKey:CSSearchableItemActivityIdentifier];
    NSString *valueForUID = [self valueForKey:uniqueIdentifier];

    self.tabBar = (UITabBarController *)self.window.rootViewController;
    self.tabBar.selectedIndex = 0;
    UINavigationController *selectedNav=(UINavigationController *)self.tabBar.selectedViewController;
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    WebViewController …
Run Code Online (Sandbox Code Playgroud)

objective-c presentmodalviewcontroller ios corespotlight

6
推荐指数
1
解决办法
722
查看次数

从presentModalViewController推送uiviewcontroller

我用一个视图显示presentModalViewController.从这个UIView我想推动UIView使用UINavigationController.我尝试下面的代码

[self.parentViewController.navigationController 
                pushViewController:objViewFullScreen 
                          animated:YES];
Run Code Online (Sandbox Code Playgroud)

但它对我不起作用.所以请任何人建议我如何推动视图ModelViewController.

谢谢

iphone objective-c uinavigationcontroller presentmodalviewcontroller ios

5
推荐指数
1
解决办法
2608
查看次数

应用程序试图以模态方式呈现一个活动控制器:UIImagePickerController

我在这方面奋斗了2天,并且相信这是我应该寻求帮助的那一刻.在我搜索SOF一段时间后,没有任何答案可以解决我的问题.这是我的申请......

在申请中,

  • 设备是iPad,iOS 6
  • RootViewController是NavigationController
  • TopViewController是TabBarController
  • 在这个TabBarController中,我从导航栏的右侧栏按钮呈现一个popoverController
  • 在呈现弹出窗口时,有一个按钮,允许用户通过拍摄新图像或从现有图像中选择图像.
  • 为了选择新的,我提出了ViewController UIImagePickerController以允许用户使用divice相机拍照.presentModalViewController:animated:如果iOS <6,并且presentViewController:animated:completion: for iOS> 6
  • 我还会在演示前隐藏状态栏
  • 要从现有照片中进行选择,我会使用presentPopoverFromBarButtonItem:permitArrowDirections:animated:
  • PopoverViewController也由一个TabBarController引用

这是问题所在

  • 如果用户首先尝试选择新的UIImagePickerController,则当前UIImagePickerController将始终失败,异常"应用程序尝试以模态方式呈现活动控制器<[尝试呈现的视图控制器的名称]>"
  • 但是,如果用户尝试从相机胶卷中选择一次图像然后尝试再次拍摄新图像,则不会失败.

这是我试过的

  • 来自RootViewController
  • 来自TopViewController(TabBarController)的礼物
  • 来自popoverViewController本身
  • 从TabBarController的选项卡中显示
  • 在演示之前隐藏popoverViewController
  • 来自popoverViewController中textField的resignFirstResponder

这是我正在使用的当前代码

// PopoverViewController, presented by a tab in TabBarController
- (IBAction)takePhoto:(id)sender {
    [self.delegate takePhotoWithDeviceCamera];
}

// A Tab in TabBarController, delegate of popoverViewController
- (void)takePhotoWithCamera {
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    if ([UIDevice OSVersion] < 6.0) {
        [self presentModalViewController:cameraPicker animated:YES];
    } else {
        [self presentViewController:cameraPicker animated:YES completion:nil];
    }
} …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimagepickercontroller presentmodalviewcontroller ios5 ios6

5
推荐指数
2
解决办法
2万
查看次数

在显示模态控制器的同时与呈现控制器进行交互

是否可以在呈现模型视图控制器的同时与呈现视图控制器进行交互?

 ------------
|            |
|    VC1     |
|            |
|            |
|            |
|            |
|------------|
|    VC2     |
|            |
 ------------
Run Code Online (Sandbox Code Playgroud)

在上图中,VC1 是presentingViewController,VC2 是presentedViewController。我试图实现的用户体验是用户可以与 VC1 和 VC2 进行交互。目前,当呈现 VC2 时,触摸不会传递到 VC1。

objective-c uiviewcontroller modalviewcontroller presentmodalviewcontroller ios

5
推荐指数
1
解决办法
649
查看次数

显示视图控制器的自定义转换不起作用

在我的应用程序中,我想滑入和滑出视图控制器。因此,为此我正在使用自定义过渡,但应用程序崩溃了。我无法找出确切的问题所在。请帮帮我。

代码

class CustomTransition: NSObject, UIViewControllerAnimatedTransitioning,UIViewControllerTransitioningDelegate {

    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {

        // get reference to our fromView, toView and the container view that we should perform the transition in
        let container = transitionContext.containerView
        let fromView = transitionContext.view(forKey: UITransitionContextViewKey.from)! // the app crashes here saying nil founded
        let toView = transitionContext.view(forKey: UITransitionContextViewKey.to)!
        let animationDuration = self .transitionDuration(using: transitionContext)
        let offScreenRight = CGAffineTransform(translationX: container.frame.width, y: 0)
        let offScreenLeft = CGAffineTransform(translationX: -container.frame.width, y: 0)

        toView.transform = offScreenRight

        // add the both views …
Run Code Online (Sandbox Code Playgroud)

animation presentmodalviewcontroller ios

5
推荐指数
1
解决办法
747
查看次数

在 iOS 13 中呈现全屏模式时是否可以使用滑动来关闭?

iOS 13 中新的默认卡片模式呈现有一个很好的功能,那就是滑动关闭。是否可以在呈现经典的同时使用这个功能.fullscreen

isModalInPresentation我在全屏演示时检查了 if为 false。

有任何想法吗?

presentmodalviewcontroller swift ios13

5
推荐指数
1
解决办法
3903
查看次数