我是Objective-C和iOS的新手。我遵循了UINavigationController

在视频的第一个2:30分钟中,他使用AppDelegate界面和实现,并且那里提供了一些我的应用程序中没有的代码。

在界面中,他具有:

@Class ViewController;
...
@property(strong, nonatomic) ViewController *viewController;


我没有。

在实现AppDelegate之前,在他开始定义navigationViewController之前,他在didFinishLaunchingWithOption中有几行代码,例如:

self.windows = [[UIWindows alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.windows.rootViewController = self.viewController;
[self.windows makeKeyAndVisible]
return YES;


我在self.viewController上收到警告。

但我只有:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}


为了排除NavigationViewController,他添加了以下行:

 UINavigationController *navigationViewController = [[UINavigationController alloc] initWithRootViewController:self.viewController
self.windows.rootViewController = navigationViewController;


当我添加此代码时,我遇到了一个错误(最后警告self.viewController)。
当我运行该项目时,它只是在顶部显示导航,但是我之前创建的TableView消失了。
您能帮我解决这个问题吗?我的模拟器是5.1版。

最佳答案

我假设这是他的YouTube系列视频的第12部分,所以他正在构建以前的代码。

无论如何,有很多方法可以将rootViewController添加到窗口中。 (以编程方式,通过情节提要板等)

获得与他的教程匹配的项目设置的最简单方法是:

在Xcode中创建一个新的“单视图”项目,并且不要启用情节提要。

这将创建一个带有AppDelegate,ViewController类和ViewController xib的项目。

(如果您选择通用应用,则将有2个xib文件)

为这个新创建的项目打开AppDelegate,它应该非常接近他的截屏...

祝好运!

(请注意,这已通过XCode 4.3.3验证)

关于iphone - iOS 5.1中的UINavigationController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11704615/

10-13 09:26