0

我正在为 iPad 制作一个笔记应用程序,它可以让用户画线,现在,它可以通过将每个页面保存为文档目录中的 PNG 来保存笔记本的页面。这是我必须保存图像的代码:

- (IBAction)saveImage:(id)sender {

UIImage *saveImage = drawImage.image;

if (saveImage != nil)
  {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                         NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:
                      [NSString stringWithFormat: @"%@-%d.png", @"image", numberOfPages] ];
    NSData* data = UIImagePNGRepresentation(saveImage);
    [data writeToFile:path atomically:YES];
  }

}

顺便numberOfPages说一句,每次按下“新页面”按钮时设置为加 1 的 int,这样,每个图像都被命名​​为“image1”、“image2”等。

所以我的问题是:我将如何设置一个UITable以便用户可以看到他们制作的所有页面的列表。

非常感谢您的时间,

卡尔

4

1 回答 1

1

每次创建新页面时,将带有图像名称的字符串添加到数组中。然后,遍历数组以填充 UITableView。当用户选择一个单元格时,打开具有该名称的文件。

#import "RootViewController.h"

@implementation RootViewController
@synthesize keys, names;
AppDelegate *appD;

- (void)viewDidLoad
{
    [super viewDidLoad];
    appD = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    names = appD.data;
    NSArray *array = [[names allKeys] sortedArrayUsingSelector:@selector(compare:)];
    keys = array;
}

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
    return [keys count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
    NSString *key = [keys objectAtIndex:section];
    NSArray *nameSection = [names objectForKey:key];
    return [nameSection count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    NSUInteger section = indexPath.section;
    NSUInteger row = indexPath.row;

    NSString *key = [keys objectAtIndex:section];
    NSArray *nameSection = [appD.data objectForKey:key];

    static NSString *SectionsTableIdentifier = @"SectionsTableIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SectionsTableIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SectionsTableIdentifier];
    }
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.textLabel.text = [nameSection objectAtIndex:row];
    return cell;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    NSString *key = [keys objectAtIndex:section];
    key = [key substringFromIndex:2];
    return key;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSUInteger section = indexPath.section;
    NSUInteger row = indexPath.row;

    NSString *key = [keys objectAtIndex:section];
    NSArray *nameSection = [appD.data objectForKey:key];

    appD.theInfo.primary = [nameSection objectAtIndex:row];

    [self performSegueWithIdentifier:@"secondarySegue" sender:self];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

@end

这适用于导航控制器中的表格,该表格从 .plist 填充自身并在单击单元格时移动到另一个表格。表视图通过委托和数据源出口连接到视图控制器。

于 2012-06-28T18:05:34.450 回答