0
我不知道我在做什麼錯,但如果任何人都可以指出我在正確的方向,我將不勝感激。我正在xcode中創建一個應用程序。我目前有兩個按鈕,繼續不同的視圖控制器,這兩個視圖都由同一個類控制。在課堂中定義了不同的視圖。對於每個視圖,我還有兩個數組,每個視圖都填充了我想要在視圖中顯示的信息。這裏是來自viewcontrollers .m文件的代碼。如果我刪除出現兩個按鈕功能的斷點,但第二個按鈕顯示來自錯誤數組的信息,但會轉到正確的視圖控制器。我完全難倒了。UITableViews和UITableViewCells
#import "techTwoViewController.h"
#import "maintInstrctViewController.h"
#import "showTechTipsViewController.h"
@interface techTwoViewController()
@end
@implementation techTwoViewController
{
NSArray *maintInstrct;
NSArray *techTips;
}
@synthesize tableView;
@synthesize techTableView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Initialize table data
maintInstrct = [NSArray arrayWithObjects:@"One", @"Two", nil];
techTips = [NSArray arrayWithObjects:@"Three", @"Four", nil];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (NSInteger)techTableView:(UITableView *)techTableView numberOfRowsInSection:(NSInteger)section
{
return [techTips count];
}
- (UITableViewCell *)techTableView:(UITableView *)techTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTechTableIdentifier = @"TechTipsCell";
UITableViewCell *cell = [techTableView dequeueReusableCellWithIdentifier:simpleTechTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTechTableIdentifier];
}
cell.textLabel.text = [techTips objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [maintInstrct count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"MaintInstrctCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [maintInstrct objectAtIndex:indexPath.row];
return cell;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showMaintKitInstrct"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
maintInstrctViewController *destViewController = segue.destinationViewController;
destViewController.maintKitName = [maintInstrct objectAtIndex:indexPath.row];
}
else if ([segue.identifier isEqualToString:@"showTechTips"]) {
NSIndexPath *indexPath = [self.techTableView indexPathForSelectedRow];
showTechTipsViewController *destViewController = segue.destinationViewController;
destViewController.techTipName = [techTips objectAtIndex:indexPath.row];
}
}
@end
樣式說明:在Objective-C中,屬性,方法和變量以小寫字母開頭,但類名以大寫字母開頭。 – geraldWilliam
此外,這個問題的標題是混淆。當你說按鈕,這表明與這個問題無關的UIButtons。你正在處理的是UITableViews和UITableViewCells。請修改這個問題的標題。 – geraldWilliam
這是一個糟糕的面向對象設計模式的典型例子。將你的表格視圖遷移到他們自己的類中,這樣你就不會遭受@geraldWilliam在答案中突出顯示的問題。備註:實際使用'UITableViewController's,並將它們作爲子視圖添加到主視圖中。 – jakenberg