我复制从另一个项目工作的ViewController类进入一个新的项目。 我无法在新项目加载视图。 在旧的项目,我用presentModalViewController。 在新的我不能让视图使用或者presentModalViewController或presentViewController加载
我试图加载目前从我的主视图控制器的看法。
这里是我的主视图控制器接口是什么样子?
// ViewController.h
#import <UIKit/UIKit.h>
#import "RequestDialogViewController.h"
@interface ViewController : UIViewController <RequestDialogViewControllerDelegate> {
}
- (void)requestDialogViewDidDismiss:(RequestDialogViewController *)controller withResponse:(NSString*)response;
我使用presentModalViewController这样的...
RequestDialogViewController *requestIPViewController = [[RequestDialogViewController alloc] initWithNibName:@"RequestDialogViewController" bundle:nil];
navigationController = [[UINavigationController alloc] initWithRootViewController:requestIPViewController];
[self presentModalViewController:navigationController animated:YES];
和presentViewController像这样...
RequestDialogViewController *requestIPViewController = [[RequestDialogViewController alloc] initWithNibName:@"RequestDialogViewController" bundle:nil];
[self presentViewController:requestIPViewController animated:YES completion:nil];
那我在新项目中丢失? init方法火灾,但viewDidLoad中不和,不显示任何内容。
谢谢
如果ViewController
是根视图控制器,它不能从它自己的内呈现模态的视图控制器viewDidLoad
,因为在该点它不具有像屏幕尺寸的信息。
如果其他视图控制器,也已经出现,这将工作。 如果根视图控制器是一个UINavigationController
,你会看到一个视图从右侧滑动,而模态视图从底部向上滑动。
总之,为你ViewController
,最快你可以展示它是它已成为明显的后。 使用此计时器是不可靠的; 老很慢的设备具有显着更长的加载时间。
对于更高的可靠性,实现viewDidAppear:
为ViewController
。 仍旧使用定时器系统添加额外的延迟; 一秒钟的小部分就足够了。 虽然内呈现模态视图控制器viewDidAppear
在了iOS 5.1模拟器工作对我来说, 加载另一个视图控制器时提出一个模态视图控制器说,有时不会发生。
我把它解决了。 我试图呈现视图从视图做的主视图控制器的负载。 不知道为什么它没有在那里工作,而是我现在设置它调用呈现主视图加载后视图控制器的方法的计时器,它现在使用的正常工作......
[self presentViewController:requestIPViewController animated:YES completion:nil];
感谢那些谁回答。
作为@Dondragmer说,如果你想呈现在根视图的viewDidLoad您的viewController,它会fail.Once你的viewController是准备好了,你可以提出你的新的viewController。 所以,你可以做到这一点的
- (void)viewDidLayoutSubviews {
//present here
}
我遇到同样的问题。 但我的情况是presentViewController
是后调用dismissViewControllerAnimated
另一个视图控制器。 我的解决方案是将移动presentViewController
来完成块dismissViewControllerAnimated
。
呈现模态的视图控制器:
对于所有的程序员开始的利益,键入它而不是复制粘贴的。
myVC *viewController = [[myVC alloc]initWithNibName:@"myVC" bundle:nil];
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:viewController animated:YES];
[viewController release];
它看起来像你试图呈现导航控制器作为第一样品中的视图控制器,则使用在所述第二个错误的方法。