Ios6 UIButton-->;UINavigationController-->;UITableView

Ios6 UIButton-->;UINavigationController-->;UITableView,ios6,xcode4.6,Ios6,Xcode4.6,我在使用导航控制器时遇到问题。我的程序是在我有一个开始屏幕(不在导航控制器中)的地方布置的,然后当你按下一个按钮时,它会将你发送到navigationController和新视图 如何从开始屏幕调用导航控制器?仅当视图控制器推送包含在导航控制器中时,推送视图控制器才会起作用。您可以尝试隐藏推送视图控制器中的导航栏: 如果您仍然希望保留您的结构,那么可能的解决方案是将导航控制器与表视图控制器一起作为模式呈现。您需要在开始视图控制器中使用presentViewController:animated:

我在使用导航控制器时遇到问题。我的程序是在我有一个开始屏幕(不在导航控制器中)的地方布置的,然后当你按下一个按钮时,它会将你发送到navigationController和新视图


如何从开始屏幕调用导航控制器?

仅当视图控制器推送包含在导航控制器中时,推送视图控制器才会起作用。您可以尝试隐藏推送视图控制器中的导航栏:

如果您仍然希望保留您的结构,那么可能的解决方案是将导航控制器与表视图控制器一起作为模式呈现。您需要在开始视图控制器中使用presentViewController:animated:completion:方法:

[self presentViewController:theTableViewController animated:YES completion:nil];

AppDelegate.h
类中

创建
UINavigationController
的属性,如:

@property (strong,nonatomic) UINavigationController *navigationController;
self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.viewController];
AppDelegate.m
中,将其作为RootViewController提供,如下所示:

@property (strong,nonatomic) UINavigationController *navigationController;
self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.viewController];
然后把它交给窗户,就像:

self.window.rootViewController = self.navigationController;
就这样!!!你完了

现在根目录中也有了navigationController


干杯

如果您在将第一个控制器添加到UINavigationViewController时没有任何问题,则只需从界面构建器执行以下操作:

1) 选择故事板中的第一个视图控制器。
2) 从菜单栏中选择编辑器->嵌入->导航控制器。

将主视图(开始屏幕)作为根视图放在导航控制器中,并在按下按钮(点击)时按下新视图。我不希望导航默认提供的返回选项,我希望它的行为就像我单击按钮时,uitableviewcontroller的行为就像主屏幕一样哦,这是一个问题!,您可以禁用导航控制器的返回功能,但这不是一个好的解决方案,好的,我会考虑另一个想法,希望您能从其他人那里得到答案。我应该在appDelegate.m中的哪个函数中编写此代码?当点击按钮时,我该如何称呼它?最后但并非最不重要的一点是,我如何返回到原始主屏幕,谢谢你
-(BOOL)应用程序:(UIApplication*)应用程序已完成启动,带有选项:(NSDictionary*)launchOptions
self=UIViewController我收到一个编译错误,
No visible@interface for'viewController'声明选择器'pushViewController:animated
如果要使用push,需要导航控制器,并从self.navigationController调用pushViewController