2011-05-21 29 views
0

我是一个开始的程序员。我有一个问题。 我目前在我的应用程序中有一个表视图。有三行,历史,理论和应用使用。我希望每个人都去一个不同的细节视图。但是,每个人只能点击一个详细视图。从表视图到xcode中的不同细节视图

我认为这个问题是在

didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"Magnets_AU_Aubrey" bundle:[ 

请任何帮助。这三个XIB的是Magnets_AU_Aubrey,Magnets_History_Aubrey和Magnets_Theory_Aubrey

#import "DisclosureButtonController.h" 
#import "NavAppDelegate.h" 
#import "DisclosureDetailController.h" 
#import "DetailViewController.h" 

@implementation DisclosureButtonController 
@synthesize list; 

- (void)viewDidLoad { 
    NSArray *array = [[NSArray alloc] initWithObjects:@"History", @"Theory", @"Applied Use", nil]; 
    self.list = array; 
    [array release]; 
    [super viewDidLoad]; 
} 

- (void)viewDidUnload { 
    self.list = nil; 
    [childController release], childController = nil; 
} 

- (void)dealloc { 
    [list release]; 
    [childController release]; 
    [super dealloc]; 
} 

#pragma mark - 
#pragma mark Table Data Source Methods 
- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section { 
    return [list count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString * DisclosureButtonCellIdentifier = 
    @"DisclosureButtonCellIdentifier"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
          DisclosureButtonCellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] 
       initWithStyle:UITableViewCellStyleDefault 
       reuseIdentifier:DisclosureButtonCellIdentifier] autorelease]; 
    } 
    NSUInteger row = [indexPath row]; 
    NSString *rowString = [list objectAtIndex:row]; 
    cell.textLabel.text = rowString; 
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 
    [rowString release]; 
    return cell; 
} 

#pragma mark - 
#pragma mark Table Delegate Methods 
- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"Magnets_AU_Aubrey" bundle:[ 
                              NSBundle mainBundle]]; 
    [self.navigationController pushViewController:dvController animated:YES]; 
    [dvController release]; 
    dvController = nil; 
    } 



- (void)tableView:(UITableView *)tableView 

accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { 
    if (childController == nil) { 
     childController = [[DisclosureDetailController alloc] initWithNibName:@"MagnetsAubreyCreditsDisclosureDetail" bundle:nil]; 
    } 
    childController.title = @"Disclosure Button Pressed"; 
    NSUInteger row = [indexPath row]; 
    NSString *selectedMovie = [list objectAtIndex:row]; 
    NSString *detailMessage = [[NSString alloc] 
           initWithFormat:@"School",selectedMovie]; 
    childController.message = detailMessage; 
    childController.title = selectedMovie; 
    [detailMessage release]; 
    [self.navigationController pushViewController:childController animated:YES]; 
} 

@end 
+0

这里有什么问题? – 2011-05-21 02:34:39

回答

0
NSArray *array = [[NSArray alloc] initWithObjects:@"History", @"Theory", @"Applied Use", nil]; 

现在做同样xibs。创建数组并用xib名称填充它。然后在didSelectRowAtIndexPath中获取正确的xib名称,应用与您在cellForRowAtIndexPath中获取单元格文本相同的逻辑。

+0

我将尝试一次采取这一步,因为我很新:数组看起来像这样:\t xibArray * array = [[xibArray alloc] initWithObjects:@“Magnets_History_Aubrey”,@“ Magnets_Theory_Aubrey“,@”Magnets_AU_Aubrey“,无];在NSArray下面的行中? – Parker 2011-05-21 07:14:23

+0

您应该阅读本文档作为第一步:http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf – TheBlack 2011-05-21 14:44:09

+0

我真的很困惑。我了解基本的代码,但我仍然感到失落。请帮忙。这是一个学校项目,并会非常感谢帮助。 – Parker 2011-05-22 01:05:06

相关问题