顯示具有 Storyboard 標籤的文章。 顯示所有文章
顯示具有 Storyboard 標籤的文章。 顯示所有文章

2013年5月13日 星期一

Storyboard 入門文章整理

這邊將這兩週所閱讀的文章進行個簡單的整理,方便日後搜尋。

2013年5月7日 星期二

Storyboard 相關資訊及注意事項

Storyboard需iOS 5、XCode 4.2以上版本才開始支援。
  1. 其基礎為xib,增加其功能,與xib最明顯不同處在一個xib檔,僅代表一個screen,而一個strotyboard可包含多個screen。
  2. 一個專案中不限制只能有一個Storyboard檔案,可多個檔案並存,但若此取此方式,這可能就失去Storyboard其原有的意義了。
    但是,若同時支援iPhone與iPad,Storyboard需分別使用不同的Storyboard檔案,並在info.plist中進行相關設定。
  3. 採用Storyboard的專案除可使用Storyboard進行開發之外,也可同時使用xib進行開發
  4. 在view controller切換,除了以原先以model或是navigate controller push的方式之外,另外增加了以segue方式切換。
注意事項:
  1. 採取Storyboard多人協同開發,並進行版本控制時,與xib有想同的問題,若同時對同一檔案維護時,可能會發生衝突問題。
  2. 另外,在iOS 6與iPhone 5釋出時,為配合iPhone 5 4吋螢幕,Storyboard增加了Autolayout功能,但該功能限制要最低版本為iOS 6以上,若在iOS 5編譯時程式會直接crash。

2012年8月30日 星期四

Storyboard 登入控制問題

在嘗試Storyboard功能時,遇到了說簡單,卻也可以說是很難的問題,
這個問題在昨天的讀書會之後,終於有了解答!

我的問題是使用Storyboard來進行畫面切換,
畫面是使用者登入的畫面,
當使用者輸入正確的登入資料時,
畫面才會跳轉到下一畫面,
若輸入資料錯誤則提示訊息。

部分程式碼如下:
- (IBAction)loginButtonPressed:(id)sender {

    NSLog(@"[userNameTextField text] = %@",[userNameTextField text]);
    NSLog(@"[passwordTextField text] = %@",[passwordTextField text]);
    
    if ([[userNameTextField text] isEqualToString:userName] && [[passwordTextField text] isEqualToString:password]) {
        
        [self performSegueWithIdentifier:@"loginSuccess" sender:self];
    } else {
        
        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Login Fail" message:@"Please Check Your User Name or Password.\n It's Wrong." delegate:self cancelButtonTitle:@"OK!" otherButtonTitles:nil, nil ];
        [alertView show];
    }
}
另外如果希望再切換畫面前在做某些事 可以實現以下Method
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
  //寫上你想執行的...
}