Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 联合UITAB控制器和;可编程导航控制器http://t.co/R52RlUL UITAB控制器和;可编程导航控制器_Iphone_Ios_Uitableview_Uinavigationcontroller_Xcode4 - Fatal编程技术网

Iphone 联合UITAB控制器和;可编程导航控制器http://t.co/R52RlUL UITAB控制器和;可编程导航控制器

Iphone 联合UITAB控制器和;可编程导航控制器http://t.co/R52RlUL UITAB控制器和;可编程导航控制器,iphone,ios,uitableview,uinavigationcontroller,xcode4,Iphone,Ios,Uitableview,Uinavigationcontroller,Xcode4,我已经创建了一个UItabbarcontroller和2个视图,其中uitableview仅使用代码(没有IB内容),现在我想在顶部添加一个导航栏,其中包括添加和编辑按钮,但我似乎绊倒了,并炸毁了我的应用程序,或仅将导航控制器添加到第三个选项卡 下面是我添加选项卡栏和切换视图的主要代码 仅供参考-我正在使用XCode4 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDiction

我已经创建了一个UItabbarcontroller和2个视图,其中uitableview仅使用代码(没有IB内容),现在我想在顶部添加一个导航栏,其中包括添加和编辑按钮,但我似乎绊倒了,并炸毁了我的应用程序,或仅将导航控制器添加到第三个选项卡

下面是我添加选项卡栏和切换视图的主要代码

仅供参考-我正在使用XCode4

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.mainTabBar = [[UITabBarController alloc] init];

// create the 2 views
tableViewController* vc1 = [[tableViewController alloc] init];
tableViewController2* vc2 = [[tableViewController2 alloc] init];

// put them in an array
NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil];

// for the tab bar
mainTabBar.viewControllers = controllers;

// Add the tab bar controller's current view as a subview of the window
[self.window addSubview:self.mainTabBar.view]; 

// Override point for customization after application launch.
[self.window makeKeyAndVisible];
return YES;
}

您希望导航控制器位于何处?您必须在UITabBarController中为每个选项卡创建一个选项卡

将navigationController与其堆栈上的第一个视图控制器一起添加。试试这个:

// create the controllers for UITabBarController
tableViewController *vc1 = [[[TableViewController alloc] init] autorelease];
navController *nav1 = [[[UINavigationController alloc] initWithRootViewController:vc1] autorelease];

tableViewController *vc2 = [[[TableViewController alloc] init] autorelease];
navController *nav2 = [[[UINavigationController alloc] initWithRootViewController:vc2] autorelease];

// put them in an array
NSArray *controllers = [NSArray arrayWithObjects:nav1, nav2, nil];

// rest of your code
还要注意,您需要释放您分配或保留的任何内容。您可以像我一样,在初始化它们时添加
自动释放
,或者在将它们添加到
控制器
数组后显式释放它们


然后,您可以在其
loadView
viewDidLoad
方法中为每个视图控制器配置
navigationItem
,具体取决于您的实现方式。

谢谢我在load view中添加了以下内容,但应用程序构建正常,但在第一个导航控制器
-(void)loadView中崩溃{self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarbuttonSystemEdit目标:自我操作:@selector(doSomething)];}-(void)doSomething{}
这是另一个问题。如果您使用
loadView
您需要通过创建和设置视图属性来初始化视图控制器。因为您的VCs是UITableViewController,所以您还必须设置tableView属性。如果您认为您做的一切都是正确的,请发布完整的
loadView
代码,我会上厕所k、 我相信在添加navigationcontrollerv-code之前,我已经设置好了表。他们不知道发生了什么(但又重新开始了)现在像做梦一样工作。我真的应该注意我买的cocoa book,它建议每晚睡10个小时!还没有在工具栏上安装按钮,因为它在loadView中还没有任何功能…很高兴你可以使用它。查看Apple文档中关于以编程方式创建UIViewController的内容,以满足你的
loadView
实现的要求。此外,在注释中的代码示例中,您需要将
autorelease
添加到
UIBarButtonItem
中。在您拥有它时,它会泄漏,因为它被保留了两次。一次是在您分配时,另一次是在navigationItem中。