2012-07-28 54 views
0

我是Objective-C和iOS中的新手。我跟着UINavigationControlleriOS 5.1中的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版本。

回答

1

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

无论如何,有很多方法可以将rootViewController添加到窗口。 (编程,通过故事板等)

最简单的方式来获得一个项目的设置,其中将匹配他的教程是:

在Xcode中创建一个新的“单一视图”的项目,并不使故事板。

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

(如果您选择通用的应用程序,你将有2个XIB文件)

开拓AppDelegate的这个新创建的项目,它应该很接近他的截屏...

祝你好运!

(注意,这与XCode的4.3.3验证)

+0

谢谢,但正如我在介绍的标题栏和结尾说的XCode 5.1。 AppDelegate不包含这些代码。 – Ali 2012-07-28 21:26:07

+1

5.1是iOS SDK。这些说明应该适用于所有最新版本的XCode(或非常接近)。如上所述,创建新项目时将生成代码。 – spacious 2012-07-28 21:59:55

+0

我在XCode中创建了一个新项目。在AppDelegate中生成的代码与我所说的完全一样。但你对iOS版和XCode是正确的。我也在XCode 4.3.3中。 – Ali 2012-07-28 22:30:55