2013-11-24 3 views
-2

Я открыл галерею на кнопке BUTTON и выберите изображение. Я сохраняю полный путь изображения в строке. Теперь, как я могу сохранить эту строку в button.I нужно сохранить строку в кнопку, чтобы кнопка могла удерживать путь . У меня так много кнопок, как в моем представлении, и они должны выполнять то же самое. Код, который я использовал для сохранения пути изображения, написан ниже.Как сохранить NSString в кнопке?

// Получить изображение из результата

UIImage* image = [info valueForKey:@"UIImagePickerControllerOriginalImage"]; 

// Get the data for the image as a PNG 
NSData* imageData = UIImagePNGRepresentation(image); 

// Give a name to the file 
NSString * imageName = @"Myimage.png"; 

// Now, we have to find the documents directory so we can save it 
// Note that you might want to save it elsewhere, like the cache directory, 
// or something similar. 
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString* documentsDirectory = [paths objectAtIndex:0]; 

// Now we get the full path to the file 
NSString* fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName]; 

// and then we write it out 
[imageData writeToFile:fullPathToFile atomically:NO]; 

    Button = fullPathToFile; ///This is the button 

return; 
+0

Не очень полезный код, поскольку их нет * контекст * предоставляется. Другими словами * где * - это код в вашем приложении? Имеет ли он доступ к экземплярам кнопок? Вы предоставили выходы для кнопок? – trojanfoe

+0

У меня есть кнопка.и на кнопку нажмите. У меня есть открытая галерея iPhone.there я выбираю image.and сохранить полный путь к картинке в NSString * fullpathTofile ... Теперь как я могу сохранить эту строку в кнопку. Так что моя кнопка может удерживать путь изображения. – rahul

+0

Я не могу сказать вам, что, поскольку вы не предоставили достаточной информации (и я бросаю вызов любому другому, чтобы дать окончательный ответ на этом этапе). Не важно, как вы получите имя изображения (мы можем предположить, что вы делаете это правильно). Важно, какой метод код вы разместили внутри? Пожалуйста, укажите больше кода. – trojanfoe

ответ

0

Здесь решение добавить свойство объекта, как UIButton и т.д.

UIButton + string.h

#import <Foundation/Foundation.h> 

@interface UIButton (String) 

@property (nonatomic, retain) NSString *path; 

@end 

UIButton + String.m

#import "UIButton+String.h" 
#import <objc/runtime.h> 

@implementation UIButton (String) 

static char UIB_PROPERTY_KEY; 

@dynamic path; 

-(void)setPath:(NSDictionary *)attributes { 
    objc_setAssociatedObject(self, &UIB_PROPERTY_KEY, path, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 
} 

-(NSString *)path { 
    return (NSString*)objc_getAssociatedObject(self, &UIB_PROPERTY_KEY); 
} 


@end 
+1

if '[UIButton buttonWithType:]' будет использоваться, подклассификация не поможет, поскольку будет создан другой подкласс – vikingosegundo

+0

Он хочет сохранить путь в кнопке ... это решение –

+1

мой комментарий был ответом на комментарий, который теперь ушел. и ваше решение может быть правильным в контексте вопроса, но приведет к ужасному дизайну. Я должен подтянуться, чтобы не проголосовать. – vikingosegundo

0

Создайте класс модели, который является классом, который имеет необходимые методы и свойства для сохранения данных, добавления, удаления и получения данных. Класс модели может быть одноэлементным, чтобы при необходимости использовать широкий доступ к приложениям.

Представления должны использоваться только для отображения или получения пользовательского ввода.

Смежные вопросы