我有一个标准的UIViewController工作魅力。但是,我想在其上添加一个UINavigationController作为子视图,随意添加和删除它。但是,似乎您不能简单地将另一个控制器作为子视图添加到当前控制器上。那我该怎么做呢?
感谢。
答案 0 :(得分:1)
这里有一些代码可以在导航控制器中创建一个新视图并将其显示在“顶部”(以模态方式呈现)。
这里有一些关键的事情:
如果您以模态方式呈现导航控制器,则需要将其设置为左侧和右侧。在initWithRootController和presentModally
之前的右键(如果需要)即使你当前的视图是在navController中,如果你以模态方式呈现它,它需要包装在UINavigationcontroller中(有一些SO帖子覆盖它)
UINavigationController with presentModalViewController
MyView *myView = [[MyView alloc] initWithNibName:@"MyView" bundle:nil];
UIBarButtonItem *cancelBtn = [[UIBarButtonImageItem alloc] init...
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] init...
[[myView navigationItem] setLeftBarButtonItem:cancelBtn];
[[myView navigationItem] setRightBarButtonItem:doneBtn];
[cancelBtn release];
[doneBtn release];
// Edit purchase in full modal view.
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myView];
[[self navigationController] presentModalViewController:navController animated:YES];
然后,从您刚刚以模态方式呈现的视图中,您可以忽略它。例如,在此代码中,上面添加的保存和取消按钮与您提供的视图控制器上的这些IBAction方法相关联:
- (IBAction)cancel:(id)sender
{
NSLog(@"cancel");
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)save:(id)save
{
NSLog(@"done");
// do work here
[self dismissModalViewControllerAnimated:YES];
}
答案 1 :(得分:0)
您可以添加另一个控制器 view 作为该viewcontroller的视图的
的子视图[mainViewController addSubview:anotherViewController.view];
虽然在UINavigationController的情况下,虽然我不知道你在做什么,但这通常不是你想要做的事情。
你看过-(void)presentModalViewController:animated
吗?