1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//
//  TwitMe.h
//  prueba
//
//  Created by sid on 12/06/11.
//  Copyright 2011 __MyCompanyName__. All rights reserved.
//


/*
USAGE:

    [[TwitMe sharedInstance] setImages:[NSArray arrayWithObjects:[UIImage imageNamed:@"twitter.png"], nil]];
    [[TwitMe sharedInstance] setTextTwit:@"first tweet with iOS5"];
    [[TwitMe sharedInstance] setUrl:@"http://www.apple.es"];
    [[TwitMe sharedInstance] setDelegate:self];
    [[TwitMe sharedInstance] showModal];

*/

#import <Foundation/Foundation.h>
#import <Twitter/Twitter.h>

@protocol TwitterDelegate <NSObject>
@optional

- (void)twitterResult:(TWTweetComposeViewController *)handler;

@end

@interface TwitMe : TWTweetComposeViewController
{
    NSString *textTwit;
    NSString *url;
    NSArray *images;
    UIViewController<TwitterDelegate> *delegate;
}

+ (TwitMe *)sharedInstance;
- (BOOL)addParamenterToTweet;
- (void)showModal;
- (BOOL)removeAllImages;
- (BOOL)removeAllURLs;

@property(nonatomic, strong) UIViewController<TwitterDelegate> *delegate;
@property(nonatomic, strong) NSArray *images;
@property(nonatomic, strong) NSString *url;
@property(nonatomic, strong) NSString *textTwit;

@end

TwitMe *sharedViewController = nil;

@implementation TwitMe
@synthesize delegate;
@synthesize images = _images;
@synthesize url = _url;
@synthesize textTwit = _textTwit;

+ (TwitMe *)sharedInstance
{
    @synchronized(self)	        
	{
		if (!sharedViewController)
        {
			sharedViewController = [[TwitMe alloc] init];
        }
        
		return sharedViewController;
	}
}

- (BOOL)addParamenterToTweet
{
    [self setInitialText:self.textTwit];

    if ([self.images count] > 0)
    {
        for (UIImage *imgs in images)
            [self addImage:imgs];
    }
    
    [self addURL:[NSURL URLWithString:self.url]];
    
    NSLog(@"%@, %d, %@", self.textTwit, [self.images count], self.url);
    
    return YES;
}

- (BOOL)removeAllImages
{
    return [self removeAllImages];
}

- (BOOL)removeAllURLs
{
    return [self removeAllURLs];
}

+ (BOOL)canSendTweet
{
    return [TWTweetComposeViewController canSendTweet];
}

- (void)showModal
{
    if ([self.delegate respondsToSelector:@selector(twitterResult:)])
    {
        if ([self.delegate respondsToSelector:@selector(twitterResult:)]) 
        {
            [self addParamenterToTweet];
            [self.delegate presentViewController:self 
                                        animated:YES
                                      completion:^(void)
                                      {
                                          [self.delegate twitterResult:self];
                                      }];
        }
    }
}

@end