尝试将特定视图作为根应用到 UINavigationController 时遇到问题
Posted
技术标签:
【中文标题】尝试将特定视图作为根应用到 UINavigationController 时遇到问题【英文标题】:Trouble Trying to Apply Specific View to UINavigationController as Root 【发布时间】:2014-02-04 21:34:01 【问题描述】:我正在创建一个应用程序,其中有一个显示三个按钮的主视图。根据单击的按钮,我会将用户发送到新视图。
正如您在下面的屏幕截图中所见,我设置了故事板来处理按钮及其重定向。
我正在尝试使用三个按钮以编程方式将UINavigationController
添加到主屏幕。到目前为止,这是我的尝试:
在myAppDelegate.m
:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
UINavigationController *home = [[UINavigationController alloc]init];
myViewController *homeView = [[myViewController alloc]init];
[home setViewControllers:[NSArray arrayWithObjects:homeView, nil]];
[self.window setRootViewController:home];
return YES;
开启myViewController.m
:
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self.navigationItem setTitle:@"Home"];
//create UIBarButtonItem
UIBarButtonItem *goToAddBoardButton = [[UIBarButtonItem alloc]initWithTitle:@"+ Add" style:(UIBarButtonItemStylePlain) target:self action:@selector(AddBoardTranisition)];
[self.navigationItem setRightBarButtonItem:goToAddBoardButton];
- (void) AddBoardTranisition
AddBoard *addBoardView = [[AddBoard alloc]init];
[[self navigationController]pushViewController:addBoardView animated:YES];
此时,当用户单击右上角的+ Add
按钮时,您可能会看到我正在完全转换到另一个视图。这适用于将用户发送到新的 Class 文件,但我需要的是有点不同。
首先,我想展示带有 3 个按钮的 home
视图。然后在他们点击按钮后,他们被发送到一个包含它自己的导航控制器的新视图类。感谢您关注这个问题。
【问题讨论】:
【参考方案1】:您需要将根视图控制器(与您称为主视图相关联的控制器)嵌入到导航控制器中。在 Interface Builder 中确保选择了主视图控制器,然后单击 Xcode 菜单中的 Editor,单击 Embed in...,然后选择 Navigation Controller。然后,您可以从 applicationDidFinishLaunchingWithOptions: 方法中删除代码行。
【讨论】:
@Presto 很高兴我能帮上忙。祝你的应用好运!以上是关于尝试将特定视图作为根应用到 UINavigationController 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
UIViewController 根视图中的 UITableView 显示