我在xcode中为iPhone做事情越来越好,但在这里我遇到了死胡同。
我正在尝试使用两种视图构建一个应用程序:主要的一个和一个用于设置。我希望能够在他们两个之间切换。由于我需要主视图中的每个像素,我已经构建了一个switchView类,当我按下一个按钮(比tabView小得多)时,它只在两个视图之间切换,这很好。
现在我在开发方面有点深入,并希望设置视图成为一个表视图,从中可以导航到下一个详细级别。我以前做过这个,但没有切换视图。
我的问题是我让表视图(在设置中)工作,但是一旦我尝试推动我的视图控制器没有任何反应。在调试时我可以看到它通过代码工作(例如didSelectRowAtIndexPath正在工作)但没有弹出新视图。没有任何错误消息。
我在我的MainWindow.xib中添加了switchView,然后执行了操作 [window addSubview:switchViewController.view];在我的AppDelegate中加载主视图。
我应该将根控制器放在表视图的导航中?因为我猜那是我的问题?
代码下面没有任何结果......
ViewsAppDelegate *delegate =[[UIApplication sharedApplication] delegate];
[delegate.settingsNavController pushViewController:settingsDetailViewController animated:YES];
对任何可能引导我走上正轨的建议感到高兴。花了太多时间来解决这个问题。
答案 0 :(得分:0)
我可能误解你所追求的是什么,但让我试试......
当你创建项目时,你应该已经为你创建了MainViewController和一个AppDelegate。从你提供的代码片组中,它就像你在MainViewController中实例化一个新的(可能是第二个)app代理一样。
我建议您将NavigationController向上移动一级到SDK提供的AppDelegate,而不是这样做。然后在MainViewController中,将现有的AppDelegate添加为IBOutlet,并将它们全部绑定在IB中。完成后,使用导航控制器应该会更顺利。
例如,我的MainWindow.xib有几个对象,我突出了两个我认为你可能关注的对象......
http://www.freeimagehosting.net/uploads/f50268da03.png
*对不起链接 - 我还无法发布图片。
然后,从我的AppDelegate中我自定义了我的applicationDidFinishLaunchingWithOptions ...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
navController.viewControllers = [NSArray arrayWithObject:mainMenuController];
// Override point for customization after app launch
[window addSubview:navController.view];
[window makeKeyAndVisible];
return YES;
}
这使navController保持在最高级别(我认为它属于),并允许您在整个应用程序中推送和弹出视图,同时保留堆栈中的内容的历史记录。
希望有所帮助 - 我可能完全误解了你的想法。
祝你好运! 鲍勃