0

我是 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 版。

4

1 回答 1

1

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

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

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

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

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

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

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

祝你好运!

(请注意,这已使用 XCode 4.3.3 进行了验证)

于 2012-07-28T21:20:32.663 回答