2011年1月31日

[iPhone]NSDate和NSString的互相轉換

NSDate轉換為NSString

NSDateFormatter *date_formatter = [[[NSDateFormatter alloc]init] autorelease];
[date_formatter setDateFormat:@"YYYY/MM/dd hh:mm"];
NSString *date = [[date_formatter stringFromDate:[NSDate date]]];


NSString轉換為NSDate

NSDateFormatter *date_formatter = [[[NSDateFormatter alloc]init] autorelease];
[date_formatter setDateFormat:@"YYYY/MM/dd hh:mm"];
NSDate *date = [date_formatter dateFromString:@"2010/01/01 12:12"];

[iPhone]亂數產生NSDate物件

產生2時間內的NSDate

給定兩個NSDate物件開始日期beginDate、結束日期endDate


srandom(time(NULL));//setting random seed
NSTimeInterval interval = [endDate timeIntervalSinceDate:beginDate];
NSTimeInterval randomInterval = random()% (int)interval;
NSDate *currentDate = [beginDate dateByAddingTimeInterval:randomInterval];

給定一指定日期currentDate,產生該時間之前或之後的隨機NSDate物件
srandom(time(NULL));//setting random seed
NSTimeInterval interval = 60*60*24;//設定時間間隔的最大秒數
NSTimeInterval randomInterval = random()% (int)interval;
NSDate *randomDate = [currentDate dateByAddingTimeInterval:randomInterval];//產生currentDate之後的隨機時間

如果要產生currentDate之前的隨機時間,可以把
randomInterval加上負號,就可以產生之前的時間了。

2011年1月17日

[iPhone] 更換目前的navigation controller頁面

要怎麼更換目前的nav controller頁面呢?

首先我們先定義一個變數 *navController

UINavigationController *navContoller = [self navigationController];

接下來再進行pop和push就可以了,

[navContoller popViewControllerAnimated:NO];
[navContoller pushViewController:yourControllerName animated:NO];

2011年1月15日

[iPhone]在NSMutableArray中存取數字


要麼怎在NSMutableArray中存取數定呢?



這樣就可以把數字放到array裡囉,
[yourMutablearray addObject:[NSNumber numberWithInt:1]];

把數字從array讀取的方法是:
int num = [[yourMutablearray objectAtIndex:index] intValue];

2011年1月14日

[iPhone]在toolbar中加入Segmented Control 並置中


我想要做一個在擺放在toolbar中的segmented control,並且擺放在toolbar中央的位置。
首先我先用Interface Builder建立一個segmented control的物件並且調整它的外觀,



建立完成之後,我們在.h檔中,加入宣告
IBOutlet UISegmentedControl *modeControl;
並且定義它的property
@property (nonatomic,retain) UISegmentedControl *modeControl;

在.m檔中,加入synthesize
@synthesize modeControl;


要把物件放入toolbar中,必需使用setToolbarItems:animated:這個方法- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated
而這個方法中接收的toolbatItems array內的物件必需是UIBarButtonItem型態的。

因此,我們利用一個UIBarButtonItem把segmented control 包起來
UIBarButtonItem *barbtnShell = [[UIBarButtonItem alloc] initWithCustomView:self.modeControl];
而置中的方法是在這個 barbtnShell之前,加入一個空隙,我們可以利用UIBarButtonSystemItemFixedSpace來達到。
所以我們定義
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
並設定空隙所需要的寬度,
[space
setWidth:44.5];
接下來把空隙和segmented control加入array裡面
NSArray *array = [[NSArray alloc] initWithObjects:space,barbtnShell,nil];
最後使用setToolbarItems把物件加入toolbar,
[self setToolbarItems:array animated:NO];
這樣就成功的把segmented control置中的擺放在toolbar中了。