我是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/