我想在iPad的屏幕中间显示一个模态视图.该视图将包含搜索栏和表格视图.它将显示搜索结果.这已启动并正在运行.
现在我需要添加一个导航控制器,以便在触摸上表视图中的一行时,将从右侧推入一个详细视图,以允许用户确定这是否是他想要的项目.
我尝试将导航控制器添加到我的模态视图但它没有显示,我找不到这个教程.
有人可以给我一个提示吗?
编辑:我开始认为我首先需要推动模态导航控制器,然后将tableview添加到此,这是正确的方法吗?如果是这样的话,有人可以提供一些细节吗?
任何人都明白为什么在CoreDataBooks示例代码中:
(a)控制器交换差异的方法
虽然单击一个项目并转到详细视图使用了似乎是" pushViewController " 的标准UINavigationController概念,但当您单击"添加"新记录按钮时,它会启动新视图以通过" presentModalViewController "添加记录"接近?也就是说,这两种方法都不一样,只是使用pushViewController方法?
使用每种方法实际上是否有任何优势?我不太明白.我猜想苹果必须为不同的场景选择不同的方法.例如:
他们会看到与用户的任何差异(即UI差异或功能差异)?
开发人员的任何差异(或优点/缺点)
例如,如果你要考虑使用pushViewController方法,而不是针对的presentModalViewController方法为"添加"的情景......
(b)数据共享方法的差异
他们如何共享共同数据对象的方法似乎有所不同 - 所以再次只是想知道为什么这些方法不一样?(即在两种情况下,主控制器暂时传递到另一个视图,并且它们之间存在一些共享数据 - 即子视图需要传递回父级)
代码提取便利性
这是为了"编辑":
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Create and push a detail view controller.
DetailViewController *detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
Book *selectedBook = (Book *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
// Pass the selected book to the new view controller.
detailViewController.book = selectedBook;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
Run Code Online (Sandbox Code Playgroud)
但是对于"添加"
- (IBAction)addBook {
AddViewController *addViewController = [[AddViewController alloc] initWithStyle:UITableViewStyleGrouped];
addViewController.delegate = self;
// …Run Code Online (Sandbox Code Playgroud) iphone uiviewcontroller uinavigationcontroller modalviewcontroller ios
我有代码
- (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match
{
[menuViewController dismissModalViewControllerAnimated:YES];
[GameKitWrapper getSingleton].match = match;
match.delegate = [GameKitWrapper getSingleton].remotePlayer;
[menuViewController presentModalViewController:avatarSelectionViewController
animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
但我有一个问题,即解雇是有效但不是现在.当我改变dismissModalViewControllerAnimated时:YES to dismissModalViewControllerAnimated:NO它工作但看起来不太好.
任何帮助表示赞赏.
我需要在显示拆分视图控制器之前呈现模态视图控制器.我需要这个,因为用户必须登录.
我看了这个论坛上暗示,模态视图控制器应该从AppDelegate中呈现,但试图这样做的时候,什么也没发生的答案.
我已经在我的界面的其余部分所在的故事板中设置了我的视图控制器,并且我已经为视图控制器提供了标识符loginViewController.我试图在AppDelegate中显示视图控制器,如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
UISplitViewController *splitViewController = (UISplitViewController *) self.window.rootViewController;
UINavigationController *navigationController = splitViewController.viewControllers.lastObject;
splitViewController.delegate = (id) navigationController.topViewController;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
LoginViewController *lvc = (LoginViewController *) [storyboard instantiateViewControllerWithIdentifier:@"loginViewController"];
lvc.modalPresentationStyle = UIModalPresentationFullScreen;
[splitViewController presentModalViewController:lvc animated:YES];
}
[_window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,没有任何反应.没有错误,没有模态视图控制器,没有任何东西.应用程序只显示我的拆分视图控制器.
在显示拆分视图控制器之前,有人能告诉我如何显示模态视图控制器吗?
我的应用程序位于UINavigationController下方,因此位于UINavigationBar下方.我想在这个UINavigationBar之上呈现一个模态视图控制器,因为我写的控制器没有意义,如果它在它下面(也就是说,我想在显示这个视图控制器时隐藏导航栏).
使用此代码呈现它:
ukc = [[UnlockKeyboardViewController alloc] init];
[self presentModalViewController:ukc animated:NO];
Run Code Online (Sandbox Code Playgroud)
导致Modal视图控制器低于UINavigationBar.当我显示这个模态视图时,UINavigationBar不应该出现.我怎么能绕过那个?
PS:这是一个越狱应用程序,所以没有Interface Builder.
我试图以编程方式从使用storyboard启动的视图控制器声明模态视图控制器.我希望看到一个空白视图,但我只看到第一个控制器的webview.
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *fullURL = @"http://google.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
_viewWeb.delegate=self;
[_viewWeb loadRequest:requestObj];
modalViewController=[[UIViewController alloc] init];
[self presentViewController:modalViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud) uiviewcontroller modalviewcontroller presentmodalviewcontroller ios
我想在iPad屏幕上表示modalviewcontrollers有问题.如果我保持原样大小,那么它就完全集中了.但我对这些视图的信息很少,所以我需要调整它们的大小.
所以,当我调整它们的大小时,我不能强迫它们出现在屏幕中间.即使我设法将其中一个中心放在一个方向上,它也会在另一个方向上混乱.
这是我目前的代码:
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:acvc];
[nav setModalPresentationStyle:UIModalPresentationFormSheet];
[nav setModalTransitionStyle: UIModalTransitionStyleCoverVertical];
[[acvc view] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"main_bg.jpg"]]];
[self presentViewController:nav animated:YES completion:nil];
nav.view.superview.frame = CGRectMake(self.view.bounds.size.width/2 + 175, self.view.bounds.size.height/2 - 125, 350, 250);
// nav.view.superview.center = self.view.window.center;
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助,谢谢.
我正在Xcode 4.6中构建一个iOS 6 iPhone应用程序,我想知道实现以下类型的弹出窗口的最佳方法:

具体来说,右侧的iPhone截图,如果用户点击主窗口中的UIView或部分透明的弹出窗口,会出现更详细的信息 - 例如肖像照片和文本数据 - 但原始视图(这里的照片集)仍然可见,计时器/计数器继续在该视图中滴答作响.
我认为这将是一个可能的解决方案iPhone模态查看较小的屏幕,但它不适合我.上面没有显示的是取消按钮,我也打算将其放入popover中,以便用户可以返回到下面的视图.当计时器到期时,详细视图也会消失.
我应该使用presentModalViewController和演示者/演示方案,还是使用与故事板segue的父子视图关系,或者我应该使用loadNibNamed,还是某种黑客来克服iPhone显示非全屏模式的限制视图?它将覆盖屏幕的大部分,但我想确保下面的视图是可见的并且仍然是活动的,因为它向不在弹出框中的用户提供信息(计时器等).用户不需要与下面的屏幕进行交互,但我希望它部分可见.
我在我的主故事板中将弹出视图设计为单独的视图控制器,而不是作为xib文件.连接和出口由接口构建器到我的代码形成,称为ProfileViewController.
警告:我的术语可能不正确且不准确.弹出窗口或弹出窗口可以是UIView,UIViewController,UIWindow,或者以编程方式解决问题的最佳方法.我并不认为它是某种小部件类型,只要功能反映了我正在寻找的东西.
提前感谢您的建议!
我有FavouriteViewController一个单击按钮的按钮我正在呈现一个模态调用的视图LoginViewController(使用故事板)
在这个页面(LoginViewController),我再次有按钮,点击我想推我的视图控制器.
可能吗 ?
我需要一个没有完整尺寸(80%宽度,<60%高度,居中)的模态页面来选择一些项目,如警报控件.如何为这种情况实现CSS?