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を加算するように設定された整数です。このように、各画像には「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 に答える