Сохранение заголовка кнопки, чтобы к ней можно было получить доступ в другом виде (Objective-C) - PullRequest
0 голосов
/ 24 марта 2012

Я пытаюсь сохранить имя кнопки с помощью одноэлементного файла, чтобы можно было получить доступ к имени в другом представлении для воспроизведения видео с таким же именем.Однако я получаю ошибку: SIGABRT.Я действительно не вижу, что не так с моим кодом.Есть идеи?

#import "List.h"
#import "MyManager.h"
#import "Video.h"

@implementation ExerciseList

-(IBAction) goToVideo:(UIButton *) sender{
    MyManager *sharedManager = [MyManager sharedManager];
    sharedManager.vidName = [[sender titleLabel] text];
    Video *videoGo = [[Video alloc] initWithNibName: @"Video" bundle: nil];
    [self.navigationController pushViewController: videoGo animated: YES];
    [videoGo release];
}

Вот мои .h и .m для MyManager:

#import <foundation/Foundation.h>

@interface MyManager : NSObject {
    NSMutableArray *workouts;
    NSString *vidName;
}

@property (nonatomic, retain) NSMutableArray *workouts;
@property (nonatomic, retain) NSString *vidName;

+ (id)sharedManager;

@end

#import "MyManager.h"

static MyManager *sharedMyManager = nil;

@implementation MyManager
@synthesize workouts;
@synthesize vidName;

#pragma mark Singleton Methods
+ (id)sharedManager {
    @synchronized(self) {
        if (sharedMyManager == nil)
            sharedMyManager = [[self alloc] init];
    }
    return sharedMyManager;
}
- (id)init {
    if ((self = [super init])) {
        workouts = [[NSMutableArray alloc] init];
        vidName = [[NSString alloc] init];
    }
    return self;
}

-(void) dealloc{
    self.workouts = nil;
    self.vidName = nil;
    [super dealloc];
}
@end

1 Ответ

0 голосов
/ 24 марта 2012

Вы должны получить доступ к названию кнопки

sharedManger.vidName = [sender currentTitle]; Однако вы не используете ARC, поэтому также проверьте, где ваше свойство vidName retain или скопируйте. если он не сохранен или не скопирован, вы также можете использовать этот код

if(sharedManger.vidname != nil){
    [sharedManger.vidName release]; 
    sharedManger.vidName = nil;

}
sharedManger.vidName = [[sender currentTitle] retain];
...