标签: presentmodalviewcontroller

PresentModalViewController或addsubview?

嗨,我正在xcode 3.2.3中编写应用程序.我想做的就是切换到另一个视图,但我不确定最好的方法.我可以用这两种方式做到这一点......

PreferencesViewController *screen = [[PreferencesViewController alloc]initWithNibName:nil bundle:nil];

screen.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

[self presentModalViewController:screen animated:YES];

[screen release];
Run Code Online (Sandbox Code Playgroud)

或使用......

PreferencesViewController *screen = [[PreferencesViewController alloc]initWithNibName:nil bundle:nil];

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:1.0];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

[self.view addSubview:screen.view]; 

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

我对这两种方法都有一些问题.如果我使用presentModalViewController并在PreferencesViewController中模拟内存警告我的应用程序崩溃.第二种方法不是这种情况.然而,第二种方法使我的按钮在翻转动画期间看起来很奇怪.

有人可以告诉我什么是错的和/或建议我哪种方法是正确的.

谢谢

views flip addsubview presentmodalviewcontroller

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

如果在iPad中的PresentModalViewController上打开,则会出现MPMoviePlayerControler全屏问题

从presentModalViewController开始,我在以全屏模式打开MPMoviePlayerController时遇到问题.

我打开一个presentModalViewController

//Create controller
mDetailFilmController = [[DetailFilmController alloc]
                                    initWithNibName:@"DetailFilmController" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc]
                                         initWithRootViewController:mDetailFilmController];

//Set modal style
navController.modalPresentationStyle = UIModalPresentationPageSheet;
navController.navigationBar.barStyle = UIBarStyleBlack;

//presentModalViewController
[self presentModalViewController:navController animated:YES];


//Dimension
navController.view.superview.bounds = CGRectMake(0, 0, 700, 700);
Run Code Online (Sandbox Code Playgroud)

在DetailFilmController中有一个MPMoviePlayerController,这是播放按钮的代码:

self.mPlayer = [[MPMoviePlayerController alloc] init];

//set url
self.mPlayer.contentURL = btn.linked_url;

//set dimension
self.mPlayer.view.frame = self.view.frame;

//AddSubView
[self.mViewForMovie addSubview:mPlayer.view];

//Notify
[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(_moviePlayerDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:mPlayer];
[[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(_moviePlayerDidFinish:) name:MPMoviePlayerDidExitFullscreenNotification object:mPlayer];

//fullscreen
[self.mPlayer setFullscreen:YES animated:YES];

//start play
[self.mPlayer play];
Run Code Online (Sandbox Code Playgroud)

当我尝试单击完成按钮时出现问题,这不起作用.

只有在下面的presentModalViewController区域才可以拦截点击.

我做错了什么?

感谢帮助 …

mpmovieplayercontroller ipad presentmodalviewcontroller

5
推荐指数
0
解决办法
1008
查看次数

从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
查看次数

两个Modal ViewControllers之间的动画过渡

我正在尝试在两个不同的活动模态视图控制器之间切换并尝试平滑动画.理想情况下,我希望动画看起来就像新的Modal View正在成为当前模态视图的模态视图.

为了在我的应用程序中保持一致性,我需要限制在任何给定时间显示的一层模态视图控制器.

目前我只是现有的模态视图解除没有动画,然后通过RootController动画下一个模态视图,但这看起来不太好.

谢谢

iphone objective-c modalviewcontroller presentmodalviewcontroller

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

一个UIButton两个场景只有一个segue,需要条件代码

我在我的Xcode项目中的storyboard文件中创建了几个场景,并且加载的第一个场景是用户登录屏幕.当用户登录UIButton时,"登录"会将用户带到欢迎屏幕.我在故事板中使用模态segue设置了它.我希望名为"admin"的用户成为欢迎管理界面.我很确定只有一个segue与一个对象关联,即故事板中的UIButton,所以我很难过如何完成登录以将管理员带到管理员欢迎屏幕,并将所有其他用户带到用户欢迎屏幕.我真的不想创建两个单独的登录按钮,所以这不是一个选项.

我遇到了一些类似问题的stackoverflow帖子,但所有答案似乎都有点复杂.请记住,我是Xcode的新手,所以如果你在答案中粘贴代码,请指定代码应该放入哪个文件(这会帮助我很多).我将发布到目前为止我的故事板的图片,以帮助演示我正在谈论的内容的可视化图表.

在此输入图像描述

xcode objective-c presentmodalviewcontroller ios uistoryboardsegue

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

在dismissViewControllerAnimated之后,为什么父框架不能保持相同的大小?

我从apple下载了PageControl示例代码.这是一个带有的项目UIPageControl.我改变了它,以便UIScrollView有不同的看法.对于我想要添加的每个视图,我创建了一个UINavigationController带有或rootViewController作为其子类的.然后我加入了,视图.UIViewControllerUITableViewControllerUIScrollViewnavigationController

现在让我说我是第一个观点.我想显示一个模态视图控制器.当我关闭它时,父视图控制器(HomeViewController在我的示例中)是全屏,而不是之前的大小,这将显示底部的页面控件.我能使其正常工作的唯一方法是在解散后调整帧大小,但这是一个糟糕的用户体验,因为它是在显示父视图控制器后调用的.关于如何HomeViewController在解雇模态视图控制器时避免调整框架大小的任何想法?

-(void)dismissMVC:(id)sender {
    CGRect frame = self.view.frame;
    [self dismissViewControllerAnimated:YES completion:^{
        self.view.frame = frame;
    }];    
}


- (void)loadScrollViewWithPage:(int)page
{
if (page < 0)
    return;
if (page >= kNumberOfPages)
    return;

// replace the placeholder if necessary
switch (page) {
    case Home:
    {
        HomeViewController *controller = [viewControllers objectAtIndex:page];

        if ((NSNull *)controller == [NSNull null])
        {
            controller = [[HomeViewController alloc] initWithPageNumber:page];
            [viewControllers replaceObjectAtIndex:page withObject:controller];
            [controller release];
        } …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c presentmodalviewcontroller ios

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

故事板中的PresentModalViewController以编程方式iOS 5

我在iOS应用程序中首次使用故事板.我的故事板(A和B)中有2个视图.让我们说A是我的故事板中的初始视图控制器.当我的应用程序启动时,我可以看到视图控制器A.到目前为止,一切都按预期工作.现在在我的视图控制器A中,我正在检查用户是否已登录.如果用户没有登录,那么我想呈现视图控制器B.如何以编程方式使用PresentModalViewController以模态方式显示B?

这是我的设置

在此输入图像描述

这是我的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    if (!isUserLoggedIn) {
        NSLog(@"USER NOT LOGGED IN....");
        UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        LoginViewController *vc = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"B"];
        [self presentModalViewController:vc animated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

presentmodalviewcontroller ios5 uistoryboard

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

应用程序试图以模态方式呈现一个活动控制器: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万
查看次数

如何在sprite工具包中呈现模态视图?

如何使用Sprite Kit Xcode模板使用Game Center或GameKit Framework?在Sprite工具包中,它使用场景; 但通常要查看排行榜,例如你需要"presentModalViewController",但这在SKView中是不可能的.

提前致谢!

xcode presentmodalviewcontroller ios ios7 sprite-kit

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

展开segues不使用模态视图控制器

我正在开发一个基于故事板的iPhone应用程序.我成功地使用展开segues来浏览我的视图控制器堆栈.

但是,当我提出一个模态视图控制器时,我似乎无法触发我在storyboard文件中指定的展开segue.

这是正常还是错误?

objective-c presentmodalviewcontroller ios segue uistoryboardsegue

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