StoryBoard是iOS 5的新特徵,目的是取代歷史悠久的NIB/XIB,對於已經習慣了xib文件的孩子們來講,StoryBoard還不是那麼熟悉。通過兩天的研究,有了一些心得,在此分享。app
1、怎樣使用storyboard簡單實現Push頁面,過程例如如下:ide
1、建立一個帶有storyboard的singleview application應用程序如圖。函數
建立好的應用程序已經本身主動建立好了一個和MainStoryboard鏈接好的ViewController。編碼
2、在MainStoryboard中,選中ViewController並拖入tableview以及tableviewCell,並且設置tableviewCell的style爲Basic,Identifier爲Cell,假設但願是本身定義cell的則需要選擇custom,例如如下圖,以後可以插入一個NavigationController:spa
不要忘記鏈接datasource和delegate。code
現在可以編碼了,在ViewController.m中:開發
#pragmamark - UITableViewDataSourceit
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{io
return1;微博
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
staticNSString*CellIdentifier = @"Cell";
UITableViewCell*cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell= [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text=@"話題";
returncell;
}
3、現在實現簡單的push功能:
再次打開MainStoryboard文件,新拖入一個TableViewController,並且在右邊project中新建一個TopicTableViewController的h文件和m文件,選中MainStoryboard中的TableViewController,將其class設置爲TopicTableViewController,同上設置好tableview的cell。
*右鍵選擇前一個viewcontroller的cell,鏈接push到新拖入的TableView Controller,例如如下圖:
這個時候執行就能正確push到新的tableview頁面了。
假設你但願在push頁面的時候作些什麼操做的話,可以在ViewController.m文件裏編碼:
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
if([[segueidentifier]isEqualToString:@"showSomething"]){
//dosomething you want
UIAlertView*alertView = [[UIAlertViewalloc]initWithTitle:nilmessage:@"test"delegate:nilcancelButtonTitle:@"肯定"otherButtonTitles:nil,nil];
[alertViewshow];
}
}
記住必定要設置push的segue,在這裏我設置爲showSomething。
執行可以看到在push頁面的同一時候彈出了testalert框,如圖:
2、獲取指定storyboard中的object
前面的步驟依照第1、二步完畢,而後第三步完畢到*符號以前,這個時候看到的就是一個單獨的新建的tableview controller,怎麼獲取它呢?很是easy,首先,MainStoryboard中選中新建的tableview controller,設置其identifier爲TopicTableViewController,如圖:
接着,在你需要使用它的函數裏,例如如下:
-(void)presentTimelineViewController:(BOOL)animated
{
UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"MainStoryboard"bundle:nil];
TopicTableViewController*topicViewController = [storyboardinstantiateViewControllerWithIdentifier:@"TopicTableViewController"];
。。。
[self.navigationControllerpushViewController:topicViewControlleranimated:animated];
}
好了,基本上對Storyboard有了一些瞭解了吧。看到個人測試應用程序名字是什麼嗎?對,SinaWeibo,以後我會具體寫一篇關於新浪微博開發的文章。