Storyboardから始めるiPhoneアプリ開発

Twitterボタン
Twitterブログパーツ

Xcodeやobjective-c、Storyboardについて得た知識などiPhoneアプリ開発の体験記を配信


草刈りパニック 海軍王アカデミー シンプルゆめ日記 シンプル表計算CelLion 魔球スラッガー 地頭を鍛えるでんしゃ算数 Don't 100
2012/02/29(水)

[Xcode]実機転送したアプリのDefault.pngが表示されない件

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.3
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
iPod touch(第3世代) iOS ver.5.0.1
==============

せっかく実機転送に成功したアプリの起動画面(Default.png)が表示されなくてハマりました。
※シミュレータでは問題無し

解決したので、それまでにやった事を箇条書きしておきます。
※あれやこれややったので順番はめちゃくちゃです



何度かいろいろ試したのですが、どうやら[default.png]ではダメ(頭文字は大文字に!)と言う事と、上記箇条書き1アクション毎にクリーニングすると良いらしいと言う事がわかりました。

ご参考になれば。
関連記事
  1. 2012/02/29(水)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/29(水)

[Xcode][objective-c]Storyboardを使ってiAdを設置する方法

カテゴリ:Xcode / objective-c
==<<管理者環境>>==
MacOSX ver.10.7.3
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

無料iPhoneアプリに欠かせない広告表示機能。

Storyboard上でiAdを設置する為のオブジェクト「ADBannerView」を使ったiAdの設置方法を紹介します。
※とりあえず「無料アプリリリース用」という位置づけで紹介します。有料アプリは、税金関係などで小難しい手続きを踏まなければならないような情報を得ました。ひょっとしたら、有料アプリでも今回紹介する方法と同じ手順で出来てしまうのかもしれません(未調査のため分かりません)。
↓iAd関連でAppleのドキュメントを見つけたのでリンクを貼っておきます
Appleドキュメント


さて、まず完成イメージから。
スクリーンショット 2012-02-29 18.21.08

画面下部にバッチリ表示されていますね。タップすると「TestAdvertisement」と表示されます。

では手順です。
手順0 広告表示画面として、Storyboard上にViewControllerを1つ用意して置いて下さい。

手順1 iAd用のフレームワークをプロジェクトに追加する
  1. 以下の順にクリックする
     ProjectNavigator >> [プロジェクトファイル名] >> TARGETS[プロジェクト名] >> Summary
  2. 下にスクロールした先にある「LinkedFrameworks and Libraries」項目の追加ボタン(+)をクリックする
  3. 出現した検索ボックスに「iad」と入力し、「iAd.framework」を選択後に「Add」をクリック

スクリーンショット 2012-02-29 18.22.59_2


手順2 ViewControllerのヘッダファイルに手順1で追加したフレームワークのヘッダファイルをインポートし、iAdのデリゲートも実装する。
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>//iAdフレームワーク

@interface ViewController : UIViewController<ADBannerViewDelegate>
@end


手順3 メソッドファイルに広告を表示するコードを実装する
#import "ViewController.h"

@implementation ViewController
{
IBOutlet ADBannerView *add_test;//広告表示ビュー
}

- (void)viewDidLoad
{
[super viewDidLoad];

add_test.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;//広告表示の種類(画面の向き)
add_test.delegate = self;
}

//iAd取得成功
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
NSLog(@"iAd取得成功");
add_test.hidden = NO;
}

//iAd取得失敗
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"iAd取得失敗");
add_test.hidden = YES;
}
[2012/7/23追記]
iAd取得成功、失敗時のデリゲートメソッドを追記しました。
※取得失敗時、iAdを残したまま(真っ白の状態)だと、AppStore審査でリジェクトされるのでご注意を。

※広告表示の種類(画面の向き)は以下の2つ
縦:ADBannerContentSizeIdentifierPortrait
横:ADBannerContentSizeIdentifierLandscape


手順4 Storyboard上でViewControllerにAdBannerViewオブジェクトを乗せてアウトレット接続する

スクリーンショット 2012-02-29 18.21.52

スクリーンショット 2012-02-29 19.59.43

以上で終了です。
実行してみて下さい。

尚、実機(iPod)でも動作確認できました。
image3.png


ただ、これだけだと広告の報酬はどうなるんでしょうか…
▲iTunes Connectで[Contracts, Tax, and Banking]の設定をする必要があります。簡単に出来ました。参考記事はコチラ[2012/3/2追記]

そして実際の広告はどうやって表示させるんでしょうか…
まだまだ調査が足りないようです。
調査出来次第、別記事で紹介することにします。
とりあえず「ガラ」の完成ということで。
関連記事
  1. 2012/02/29(水)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:8
2012/02/29(水)

iPhoneアプリ『Brushes』

カテゴリ:iPhoneアプリ紹介

ペイントアプリを紹介します。

このアプリはレイヤーを4枚まで使えるのが特徴です。

iPhoneアプリのインターフェースを考える上で、高性能でレイヤーが使え
かつiPhoneのインターフェースと同画面を使えるのはかなり便利です。

私もiPhoneアプリのインターフェースを考えるときや手軽に作るときはこのアプリを
使っています。

iPhoneアプリ製作者にはもちろんただただお絵描きが好きな人にもおすすめです。

Brushes - iPhone Edition App

カテゴリ: エンターテインメント

価格: ¥450(記事掲載時)

関連記事
  1. 2012/02/29(水)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/28(火)

iPhoneアプリ『Akinator』

カテゴリ:iPhoneアプリ紹介
iPhone発売当初には話題沸騰でしたが、新規ユーザー向けにおすすめアプリを紹介します。


ランプの魔人の質問に答えていくと、自分が思い浮かべている人物を当ててくれるアプリです。


ゲームのルールは簡単。

1、自分の頭に人物を思い浮かべる。
(歴史上の人物、架空の人物、アニメのキャラ、身内などなんでもOK)

2、ランプの魔人の質問に正直に答えていく。

3、ランプの魔人が思い浮かべた人物を当ててくるので正直に正誤を答える。


時間も1問1分くらいで手頃なところがいいですね。
せっかくiPhoneを買ったならかなりオススメです。

Akinator the Genie App

カテゴリ: エンターテインメント

価格: ¥170(記事掲載時)

関連記事
  1. 2012/02/28(火)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/27(月)

[Xcode][objective-c]UIScrollViewを使ってスワイプでページを切り替える方法

カテゴリ:Xcode / objective-c
==<<管理者環境>>==
MacOSX ver.10.7.3
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

スワイプでページをめくるように切り替える方法を紹介します。
まずは完成イメージから。

paging.png

左から1(ピンク)→2(みどり?)→3(黄色)と3枚の画像を「1枚=1ページ」として切り替えています。
キャプチャが難しくて分かりにくいですが、真ん中の2枚はそれぞれ1→2、2→3へ切り替え中です。下の方にスクロールバーが見えていますね。

では手順です。
手順0(準備)
  1. Storyboard上にViewControllerを配置しておきます
    ※新規プロジェクト作成(SingleView)した状態
    ※ViewController.h & 〜.mを使用します
  2. 縦460px横320pxの画像を3枚、プロジェクトに放り込んでおきます
    ※ファイル名は「img1.png」「img2.png」「img3.png」とします

スクリーンショット 2012-02-27 22.38.46


手順1 ViewController.mにScrollViewに表示させる画像を設定するコードを書く
@implementation ViewController
{
IBOutlet UIScrollView *scrollView;
}

const CGFloat kScrollObjHeight = 460.0;//(※1)1pageの高さ
const CGFloat kScrollObjWidth = 320.0;//(※2)1pageの幅
const NSUInteger kNumImages = 3; //(※3)総page数

//ScrollViewの設定
- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [scrollView subviews];

CGFloat curXLoc = 0;
for (view in subviews)
{
if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
{
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;

curXLoc += (kScrollObjWidth);
}
}

//スクロールの総範囲
[scrollView setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), kScrollObjHeight)];
}

//画像のサイズ取得とScrollViewへ追加
- (void)viewDidLoad {
NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
NSString *imageName = [NSString stringWithFormat:@"img%d.png", i];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

CGRect rect = imageView.frame;
rect.size.height = kScrollObjHeight;
rect.size.width = kScrollObjWidth;
imageView.frame = rect;
imageView.tag = i;
[scrollView addSubview:imageView];
}

[self layoutScrollImages];
}
//…その他メソッドなど
@end

※上記コードの、(※1)〜(※3)の数値を自分の環境に沿うように設定してしまえば、あとの部分は気にせずコピペしてもちゃんと動いちゃうと思います。


手順2 StoryboardでViewControllerにUIScrollViewオブジェクトを乗せる

スクリーンショット 2012-02-27 22.27.23


手順3 メソッドファイルで定義したscrollViewのアウトレットを行う

スクリーンショット 2012-02-27 23.23.11


手順4 UIScrollViewの設定を行う
  1. スクロールバー(水平、垂直)を表示するかどうか
  2. スクロールを「ページ単位」とするかどうか
  3. スワイプでスクロール範囲の端まで来た時、その先の余白まで表示させるか(ビヨーンって)

スクリーンショット 2012-02-27 22.39.47_2
正直「2」以外はどうでもいいです。
2にしっかりチェックを入れないと「ページ単位」でスクロールしてくれません。
他の項目もいろいろ設定出来るみたいなので、試してみて下さい。


以上で終了です。
案外簡単に出来るものですね。
実は私も今日初めてこのScrollViewという文化に触れたので、実際良くわかっていません。

今回は、ScrollViewだけでページングを実装しましたが、iPhoneの待ち受け画面等で使われているPageControl(・・・←みたいなの)を使って実装する方法もあります。
しかし、今のところ私はお手上げなので、調査完了次第ご紹介する事にします。

[2012/03/20追記]
PageControl(・・・←みたいなの)を使って実装する方法を記事にしました。
UIScrollViewとUIPageControlを組み合わせてスワイプでページを切り替える方法


ちなみに今回はAppleのサンプルコード「Scrolling」を参考(パクった)にしました
関連記事
  1. 2012/02/27(月)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:4
2012/02/27(月)

GIMPにスクリプトを追加する方法@mac

カテゴリ:GIMP
==<<管理者環境>>==
MacOSX ver.10.7.3
GIMP 2.6.11
==============

忘れそうなのでメモ。

以下「スクリプト」まで辿って、スクリプト置き場を確認しスクリプトファイル(.scm)を配置。

編集 >> 環境設定 >> フォルダ >> スクリプト

私の場合、こんな感じ↓
/Users/ユーザ名/Library/Application Support/Gimp/scripts


配置出来たらGIMPを再起動するか、

フィルタ >> Script-Fu >> スクリプトを再読み込み

で完了。
関連記事
  1. 2012/02/27(月)|
  2. GIMP
  3. | トラックバック:0
  4. | コメント:1
2012/02/27(月)

iPhoneアプリ『ダークサマナー』

カテゴリ:iPhoneアプリ紹介
ホラー系モンスターの正解で召還士となり世界統一を目指すRPG

累計ダウンロード数200万超えの超ハイクオリティ無料アプリです

とにかくイラストが綺麗。ムービーにも驚かされます。
日本のみならず海外の有名クリエーターも起用しているとのこと。

作り込まれた登場モンスターは350体以上。アップデートで随時追加中。

とにかく凄い…

ダークサマナー App

カテゴリ: ゲーム

価格: 無料(記事掲載時)
関連記事
  1. 2012/02/27(月)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/26(日)

[Xcodeエラー] Warning: Multiple build commands for output file /xxx/xxx.xxx

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

*症状
コンパイルで、ナビゲーターウィンドウの警告ウィンドウに上記メッセージ(黄色文字)出現
尚、実行は問題なくできる

*原因
同じ名前のファイルが2箇所以上で参照されている。

*解決策
方法1.重複しているものを手動で削除する
方法2.Clean(Commandキー + Shiftキー + [K]キー)で自動で削除する

*参考URL
http://iphone-tora.sakura.ne.jp/iphone_troubleshooting.html
http://d.hatena.ne.jp/captainshadow/20110802/1312264489
関連記事
  1. 2012/02/26(日)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/26(日)

[Xcodeエラー] Incomplete implementation

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

症状

コンパイルで、.mファイルの「@implementation」に上記メッセージ(黄色文字)が出現
尚、実行は問題なくできる。

原因

  1. .hファイルで宣言はしているけども、.mファイルで使っていない。
    例)propertyやメソッド

  2. .hファイルと.mファイルでの表記が異なる。
    例).hファイルでメソッドの引数となる変数名を変更したが、.mファイルで変更せず。(エラーにはならない)

対処方法

  1. 不要なメソッドであれば.hファイルから削除。
    必要なメソッドであれば.mで使う。

  2. 変数名も忘れずメソッド名を一致させる
関連記事
  1. 2012/02/26(日)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/26(日)

[Xcodeエラー] Sending 'ViewController *Const__strong' to parameter of incomplete type 'id'

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

*症状
アクションシートメソッドの以下の引数設定で上記メッセージ(黄色文字)出現

delegate:self

尚、実行は問題なくできる。

*原因
アクションシートのデリゲート宣言がされていない

*解決策
該当ViewControllerヘッダファイル(xxx.h)のクラス宣言の引数に「< UIActionSheetDelegate>」を以下の様に記載する
@interface ViewController : UIViewController < UIActionSheetDelegate>{
}

*参考URL
http://sarudeki.maiway.jp/forum/topic/474
http://konton.ninpou.jp/program/cocoa/delegate.html
関連記事
  1. 2012/02/26(日)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/26(日)

[Xcodeエラー] no previous prototype for function XXXX

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

*症状
自作メソッドを定義すると上記メッセージ(黄色文字)出現

*原因 不明

*解決策
方法1.Build Settingsの「Missing Function Prototypes」の設定を NO にする
方法2.関数をstaticにする

*参考URL
http://d.hatena.ne.jp/nakamura001/20111007/1318002296

関連記事
  1. 2012/02/26(日)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/26(日)

iPhoneアプリ『空手チョップ』

カテゴリ:iPhoneアプリ紹介
手刀で瓦割りに挑戦するアプリです。

スワイプ(指を滑らせる)操作で簡単に出来ます。

ポイントはスワイプの速度と、「手」と「瓦」の接触点だとのこと。

割りまくって爽快感を得ましょう。

空手チョップ! App

カテゴリ: ゲーム

価格: 無料(記事掲載時)

関連記事
  1. 2012/02/26(日)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/24(金)

[Xcode][objective-c]コードで画面遷移する方法@UITableView

カテゴリ:画面遷移
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============


画面遷移を、Storyboard上でSegueを直接繋ぐのではなく、コードで実装する方法です。
(私のようにStoryboardが導入されたXcode4.2以降にiPhoneアプリ開発デビューした方は、ここでつまづくハズ…)

今回は、UITableViewのCellをタップして画面遷移(NavigationView付き)する方法を紹介します
(コードで画面遷移する方法については、こちらの記事もご覧ください。コードで画面遷移する方法@UIAlertView)
▲記事が長いので2つに分割しました(2012/3/1追記

下画像のように、ナビゲーションバー付きのUITableView(Navi1)にデータを表示して、タップしたセルに応じてそれぞれの詳細画面に遷移する方法を紹介します。

navi_seni


※注意
遷移画面をNavi1と表記します
遷移画面をNavi2と表記します

手順1 Storyboardを開き、UINavigationController(初期画面のUIViewController付き)を配置する
1スクリーンショット 2012-02-24 2.50.40

手順2 RootViewController(タイトルを「Navi1」に変更済み)にUITableViewを配置する
2スクリーンショット 2012-02-24 2.50.40


手順3 Navi1のUITableViewを選択し、以下3つをアウトレットする
(1)「ConnectionsInspector」の「Outlets」項目にある「datasource」
(2)「ConnectionsInspector」の「Outlets」項目にある「delegate」
(3)「ConnectionsInspector」の「ReferencingOutlets」項目にある「NewReferencingOutlet」
3スクリーンショット 2012-02-24 2.50.40「ReferencingOutlets」の時のみ下画像のように「view」という文字が出てくる。クリックする。99スクリーンショット 2012-02-24 2.50.40

下画像のようになればOK
99_2スクリーンショット 2012-02-24 2.50.40


手順4 Navi1のUITableViewのセルを選択し、「AttributesInspector」の「TableViewCell」項目にある「Identifier」に「Cell」と入力する

99_3スクリーンショット 2012-02-24 2.50.40


手順5 遷移先画面として、UITabelViewController(Navi2)を配置
888スクリーンショット 2012-02-24 5.08.43

手順6 Navi2に対して、手順2〜4を行う
(今回は、手順2の「タイトル変更」は不要)
6_2スクリーンショット 2012-02-24 2.50.40

手順7 Navi2の「AttributesInspector」の「ViewController」項目にある「Identifier」に任意な名前(他と被らないように)を設定する(今回の例では「detail」としました)

98スクリーンショット 2012-02-24 2.50.40


手順8 Navi1と2にそれぞれのテーブルにデータを表示するためのクラス(UITableViewControllerクラス)を設定する。
※今回の例では、Navi1用に「TestNavi1」クラス、Navi2用に「TestNavi2」クラスを用意しました。
※UITableViewControllerクラスの作成方法はコチラの記事(クラスファイルの作成方法)を参照のこと
777スクリーンショット 2012-02-24 4.55.00

手順9 Navi1のヘッダファイルにNavi2のヘッダファイルをインポートする
#import "TestNavi2.h"
@interface TestNavi1 : UITableViewController
@end


手順10 Navi1のメソッドファイルに、データ表示と画面遷移のためのコードを記述する
#import "TestNavi1.h"

@implementation TestNavi1
{
NSArray *myArray;//セル表示用配列
}

- (void)viewDidLoad
{
//セルに表示するテキストを配列に格納
myArray = [NSArray arrayWithObjects:@"カテゴリ1",@"カテゴリ2",@"カテゴリ3",nil];
}

//セルの数を返す
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//配列の要素数だけセルを設定
return [myArray count];
}

//セルの内容の設定
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

// セルに表示する文字を設定
cell.textLabel.text = [myArray objectAtIndex:indexPath.row];

return cell;
}

//画面遷移
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//セル選択状態の解除
[tableView deselectRowAtIndexPath:indexPath animated:YES];

//遷移先(Navi2)クラスのインスタンスを生成
TestNavi2 *testNavi2 = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];//手順7で付けた名前

//遷移先(Navi2)のタイトル(タップされたセルのテキストとした)の設定
testNavi2.title = [myArray objectAtIndex:indexPath.row];

[[self navigationController] pushViewController:testNavi2 animated:YES];
}

@end


手順11 Navi2のメソッドファイルにデータ表示のためのコードを記述する
#import "TestNavi2.h"

@implementation TestNavi2

// セルの数を返す
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//今回は適当に5つとした
return 5;
}

// セルの内容の設定
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

// セルに表示する文字を設定
cell.textLabel.text = [NSString stringWithFormat:@"%@ - %d", self.title, indexPath.row+1];

return cell;
}

@end


長くなりましたが以上です。うまく表示されましたでしょうか。
詳細画面から元の画面に戻るには、自動生成された「Navi1」ボタンを押すだけでOKです。

今回は、テーブルの中身を直書きで指定しましたが、実際のアプリはDBからデータを抽出するなど
「可変」での実装になると思います。余裕があればそのあたりも書こうかと思います。

コードで画面遷移する方法については、こちらの記事(コードで画面遷移する方法@UIAlertView)もご覧ください。
関連記事
  1. 2012/02/24(金)|
  2. 画面遷移
  3. | トラックバック:0
  4. | コメント:24
2012/02/24(金)

[Xcode][objective-c]コードで画面遷移する方法@UIAlertView

カテゴリ:画面遷移
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

画面遷移を、Storyboard上でSegueを直接繋ぐのではなく、コードで実装する方法です。
(私のようにStoryboardが導入されたXcode4.2以降にiPhoneアプリ開発デビューした方は、ここでつまづくハズ…)

今回は、UIAlertViewのボタンをタップして画面遷移する方法を紹介します。
(コードで画面遷移する方法については、こちらの記事もご覧ください。コードで画面遷移する方法@UITableView)
▲記事が長いので2つに分割しました(2012/3/1追記


下画像のように、testVC1(TestViewController1クラス)に配置してあるボタンを押してアラートを表示させ、さらにアラートのOKボタンを押すとtestVC2(TestViewController2クラス)に画面遷移する方法を紹介します。

コードで画面遷移1

※注意
遷移ViewControllerをVC1と表記します
遷移ViewControllerをVC2と表記します

手順0 Storyboard上にUIViewControllerを二つ。遷移元画面(画像左)にAlertViewを表示させるためのボタンを配置して置いて下さい。

スクリーンショット 2012-02-24 22.39.08

▼ViewControllerへのクラスの設定も忘れずに(2012/2/29追記
※クラスファイルの作成方法は、コチラの記事(クラスファイルの作成方法)を参照のこと
スクリーンショット 2012-02-29 15.06.38_111


手順1 Storyboardを開き、VC2の「AttributesInspector」の「View Controller」項目にある「Identifier」に任意な名前(他と被らないように)を設定する(今回の例では「testVC2」としました)

コードで画面遷移


手順2 VC1のヘッダファイルにVC2のヘッダファイルをインポートし、「UIAlertViewDelegate」を実装する
#import "TestViewController2.h"
@interface TestViewController1 : UIViewController < UIAlertViewDelegate >

//アラート表示用ボタンのアウトレットも忘れずに
- (IBAction)alertTest;


手順3 VC1のメソッドファイルに、アラート表示と画面遷移をするコードを記述する
//アラート表示
- (IBAction)alertTest{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"画面遷移テスト"
message:@"TestViewController2に\n画面遷移します"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStyleDefault;
[alert show];

}

//ボタン押下時の処理
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//遷移先ViewControllerクラスのインスタンス生成
TestViewController2 *testVC2 = [self.storyboard instantiateViewControllerWithIdentifier:@"testVC2"];//手順1で付けた名前

switch (buttonIndex) {
case 0://押したボタンがCancelなら何もしない
break;

case 1://押したボタンがOKなら画面遷移
[self presentModalViewController:testVC2 animated:YES ];
break;

}
}


手順3まで出来たら実行してみてください。
うまく表示されましたでしょうか。

コードで画面遷移する方法については、こちらの記事(コードで画面遷移する方法@UITableView)もご覧ください。
関連記事
  1. 2012/02/24(金)|
  2. 画面遷移
  3. | トラックバック:0
  4. | コメント:8
2012/02/24(金)

[Xcode][objective-c]クラスファイルの作成方法

カテゴリ:Xcode / objective-c
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

新しいプロジェクトを作成する時、SingleViewApplicationを選択すると自動でStoryboardにUIViewControllerが配置され、さらに「ViewController」というUIViewControllerクラスファイルとヒモ付けされています。

そのクラスファイル以外のクラスが必要になることがあると思います。
その作成手順を紹介します。

今回は、UITableViewControllerクラスファイルを作成します。

手順1 XcodeのFileメニュー >> New >> NewFileを選択する

スクリーンショット 2012-02-24 22.54.40


手順2 「Objective-C class」を選択し「Next」をクリックする

スクリーンショット 2012-02-24 22.55.40


手順3 適当なクラス名を付け「Next」をクリックする
  ※今回の例では、「TestTableViewController」としました

スクリーンショット 2012-02-24 22.56.24

すると下画像のように、新しいファイルがプロジェクトに追加される。
スクリーンショット 2012-02-24 22.57.10


手順4 ヘッダファイルのクラス名を変更する
//変更前
@interface TestTableViewController : NSObject

//変更後
@interface TestTableViewController : UITableViewController


以上で新しいクラスファイルの作成が完了しました。
今回は、UITableViewControllerクラスを作成しましたが、
UILabel
UITextField
UIImageView

などなど必要に応じてクラスを定義してください。

関連記事
  1. 2012/02/24(金)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:0
2012/02/24(金)

iPhoneアプリ『Twika^o^』

カテゴリ:iPhoneアプリ紹介
おもしろいアプリの紹介です。

このアプリで自分の顔を取ると、なんと顔文字に変換してくれます。
(詳細はappstoreの紹介ページを見てください)

こういうおもしろくて話題性がありそうなアプリを作ってみたいですね。

twika^o^ App

カテゴリ: ソーシャルネットワーキング

価格: 無料(記事掲載時)


関連記事
  1. 2012/02/24(金)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/22(水)

iPhoneアプリ『パズル&ドラゴンズ』

カテゴリ:iPhoneアプリ紹介
たまにあります無料でここまでかってくらいのハイクオリティアプリ

パズル&ドラゴンズ』はその最たるものです

モンスターが出現するダンジョンを攻略していくゲームなんですが、コマンドで攻撃するのではなく「パズル」で攻撃や回復の「強さ」が決まります。

火や水などの属性ごとに色分けされたボールが5×6の枠のなかに30個配置されていて、1つだけボールを任意の位置に動かし、同じ属性のボールが3つ以上揃ったらそのボール達が消え、消えた分だけ新しいボールが補充されます。

3つ以上揃った組み合わせを「1セット」とし、他にも何セットか揃っていたら「連鎖」としてカウントされます。

その連鎖と消えたボールの数で、攻撃や回復の「強さ」が決まるようです。

最初は何がなんだかわからないんですけど、知らぬ間にハマってます♪

キャラクターなどのデザインやサウンドなどのクオリティが高いです。

無料期間は、2012/2/29まで!

今のうちにゲットしましょう。

パズル&ドラゴンズ App

カテゴリ: ゲーム

価格: 無料(記事掲載時)

>>パズル&ドラゴンズサイトはこちら<<
関連記事
  1. 2012/02/22(水)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/22(水)

[Xcode][objective-c]配列をランダムに並び替える

カテゴリ:Xcode / objective-c
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

配列内のオブジェクトをランダムで入れ替える方法を紹介します。

型によっては配列内のオブジェクトを入れ替えるメソッドがありますが、
以下のコードなら型に関係なく使用できます。

ちなみに、NSArrayやNSMutableArrayではexchangeintegerAtIndexメソッドが使えますね。


//以下コードです。
int Array01[4] = {1,2,3,4};
int tmp;

for (int i = 0; i < 4; i++) {
int j = rand()%3;
tmp = Array01[i];
Array01[i] = Array01[j];
Array01[j] = tmp;
}
関連記事
  1. 2012/02/22(水)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:0
2012/02/21(火)

[Xcodeエラー]Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1

カテゴリ:エラー
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

iPhoneアプリ開発で、Xcodeで「Run」した際に以下のエラーが出たときの対処方法です。
私の場合、「定数の重複定義」が原因でした。(※ネットで検索したところ他にもいくつか原因があるようです)

エラー文
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1


<対処手順>(※下画像参照)
  1. Runする(←ここでBuild Failed)
  2. Issue navigatorボタンを押す
  3. エラー画面を表示する
  4. 重複定義している変数を確認する
  5. 重複定義しているファイルを確認する
  6. 5のファイル名を元に定義を修正する

clang failed with exit code 1

ネットでライブラリをダウンロードしてきた場合など、自分で作成したファイル以外と重複していないか注意が必要です。
関連記事
  1. 2012/02/21(火)|
  2. エラー
  3. | トラックバック:0
  4. | コメント:0
2012/02/21(火)

SoftBank4Gサービス 24日開始

カテゴリ:気になるニュース
下り最大110Mbpsってすごいですね。
以前使ってたイーモバイルのポケットWi-Fiは42Mbpsでした。

モバイルルーターは電池のモチが悪いのでその点が気になります。

▼ニュース記事
ソフトバンク:高速データ通信「4G」、24日開始 スマホとセットで月額3880円も

関連記事
  1. 2012/02/21(火)|
  2. 気になるニュース
  3. | トラックバック:0
  4. | コメント:0
2012/02/20(月)

iPad,iPhone医療補佐アプリもありか

カテゴリ:気になるニュース
カルテやCTスキャン画像などの持ち運び用にタブレット端末を導入している医療機関が増えている。

他にも、事故現場に医師が駆けつける「ドクターカー制度」でも近隣の消防と連携し、現場までの経路情報をタブレット端末で簡単に確認できるため現場到着時間が短縮されるなど、様々な用途で使われているようだ。

今やなくてはならない存在と言う医師も。

こんな世のため人の為になるようなアプリを作れたら最高ですね。

▼ニュース記事
医療&健康ナビ:薄型パソコン端末の医療現場への導入が進んでいます。

関連記事
  1. 2012/02/20(月)|
  2. 気になるニュース
  3. | トラックバック:0
  4. | コメント:0
2012/02/20(月)

iPhoneアプリ『大地震発生!あなたと家族の命を守る安全な場所はここだ!〜4年以内にやってくる首都圏大地震〜』

カテゴリ:iPhoneアプリ紹介
首都圏大地震に備えてこんなアプリはいかがでしょうか?
絶賛セール中です。


関連記事
  1. 2012/02/20(月)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/19(日)

iPhoneアプリ『ネコと学ぼう インド式2桁かけ算Lite』

カテゴリ:iPhoneアプリ紹介
日本の小学校では通常9×9までしか覚えません。
2桁のかけ算をあっという間に解いてしまう海外の小学生をテレビなどで見たことがありませんか?

その計算方法をマスターできるアプリです。

計算の仕組みってすごいですね。
そろばんも同じ仕組みなんでしょうか?

ネコと学ぼう インド式2桁かけ算Lite App

カテゴリ: 教育

価格: 無料(記事掲載時)


関連記事
  1. 2012/02/19(日)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/19(日)

iPhone アプリは昼によく使われている

カテゴリ:気になるニュース
昼はiPadアプリよりiPhoneアプリが良く使われている。
そして、iPhoneアプリは何度も分単位の短時間の利用が目立つと集計結果が出たとのこと。

▼ニュース記事
iPhone アプリは昼に、iPad アプリは夜に利用される
関連記事
  1. 2012/02/19(日)|
  2. 気になるニュース
  3. | トラックバック:0
  4. | コメント:0
2012/02/18(土)

[objective-c]コード上でiPhoneの画面を回転させないようにする方法

カテゴリ:Xcode / objective-c
==<<管理者環境>>==
MacOSX ver.10.7.2
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

アプリによっては画面の自動回転をさせたくない画面があると思います。
コード上で画面の自動回転を制御する方法です。

例えば、「TestVC」というUIViewControllerクラスの画面を、縦画面のみ有効(横にしても回転しない)にするには、

//自動画面回転の設定
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
//縦画面のみ有効
return (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || interfaceOrientation == UIInterfaceOrientationPortrait);
}
※既に、「- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation」メソッドが存在している場合は、メソッドの中身だけ書き換える。

上記コードでは、「==」を使っていますが、「!=」を使うことも出来ます。
また、「||(または)」ではなく「&&(かつ)」を使うことも出来ます。

条件をひとつだけにしたいなら、
//縦画面(逆さま)の時は回転しない
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
などとしてください。

あと、「return」の引数の右辺(!=より右側)を自分が制御したい値(下記参照)に書き換えてください。

縦(正面):UIInterfaceOrientationPortrait
縦(真逆):UIInterfaceOrientationPortraitUpsideDown
横(Homeボタン左):UIInterfaceOrientationLandscapeLeft
横(Homeボタン右):UIInterfaceOrientationLandscapeRight

いろいろ試してみて下さい。
関連記事
  1. 2012/02/18(土)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:0
2012/02/18(土)

Mac新OS『OS X Mountain Lion』iOSとの連携強化

カテゴリ:気になるニュース
iPhoneやiPadとの連携が強化され、さらに便利で使い勝手が良くなりそうですね。

▼ニュース記事
アップルが発表した最新OS「OS X Mountain Lion」のMountain Lionとは

関連記事
  1. 2012/02/18(土)|
  2. 気になるニュース
  3. | トラックバック:0
  4. | コメント:0
2012/02/18(土)

スマホは必要だよね?

カテゴリ:気になるニュース
スマホは必要ない?

携帯電話の代替としてのスマホの必要性ってどうなんでしょうね?
通信費は高くなるし、電池の保ちは悪くなるし、、、

自分の場合は資産運用とかニュース購読等でかなり便利になりましたが、
確かに携帯電話+ノートパソコンに比べて、スマホ+ノートパソコンは
オーバースペックな気がしますね。

スマホを使用している人は生活中のパソコンとスマホの位置づけを今一度見直した方が
良いかもしれませんね。

http://blogos.com/article/32114/?axis=p:4
関連記事
  1. 2012/02/18(土)|
  2. 気になるニュース
  3. | トラックバック:0
  4. | コメント:0
2012/02/17(金)

iPhoneアプリ『不思議の国のアリス 「Alice's Adventures in Wonderland」英語タウンのクラシックストーリー・スーパーリーダー』

カテゴリ:iPhoneアプリ紹介
英語の勉強にもってこい。
OXFORD BOOKWORMSの不思議の国のアリスを朗読してくれるアプリです。

私はイギリス留学の経験からすると、リスニングの練習には英語を聞きながら英文を読むのが一番です。


関連記事
  1. 2012/02/17(金)|
  2. iPhoneアプリ紹介
  3. | トラックバック:0
  4. | コメント:0
2012/02/17(金)

複数のXcode画面を簡単に切り替える方法

カテゴリ:Xcode / objective-c
iPhoneアプリの開発でXcodeを使いますが、例えばAppleのサンプルコードを見ながら開発することって良くあると思います。

そうするとプロジェクトを複数開くことになりますが、Windows風に「command + tab」ではプロジェクトを切り替える事が出来ず、MissionControllかExposéでウィンドウを全て表示させてから切り替える事になると思います。

もっと簡単に切り替えられないかと考えた結果、仮想デスクトップ(spacesという機能?)を使う方法が一番良いという結論に至りました。

<手順>
1)4本指を上にスワイプするか「control + ↑」でMissionControllを開き、下画像の「←click」をクリックする。
xcodechange1


2)2つ目のデスクトップに表示したいウィンドウを、1)の操作で出現した「デスクトップ2(下画像青枠)」にドロップする
xcodechange2

3)4本指スワイプ等でMissionControllを閉じる。

以上の操作で、4本指で左右にスワイプするか、「control + ← or →」でXcodeの画面を簡単に切り替えられるようになる。
関連記事
  1. 2012/02/17(金)|
  2. Xcode / objective-c
  3. | トラックバック:0
  4. | コメント:0
2012/02/16(木)

UITableViewから画面遷移する方法@Storyboard

カテゴリ:画面遷移


▼2012/02/26追記
以下記事も参照のこと
[Xcode][objective-c]コードで画面遷移する方法
関連記事
  1. 2012/02/16(木)|
  2. 画面遷移
  3. | トラックバック:0
  4. | コメント:0
次のページ

検索フォーム

アプリ紹介記事

おすすめ書籍

入門者向けおすすめサービス

iPhoneアプリ開発やリリースに必須と思われるサービスです。開発と並行してリリースの環境を整える必要があります。

    シティバンク
    アプリから得られる収入やアプリ製作関連の支出を管理する口座が必要です。アプリから得られる収入は日本円だけではなく米ドル等の外貨の場合がありますので、グローバルで貨幣の両替が簡易な銀行口座を選択します。一旦はここで無難です。

    FC2ブログ
    アプリをリリースする際、サポートサイトが必須です。無料で使い勝手の良いFC2ブログがおすすめです。

    リンクシェア
    アプリの下によくある広告のあれです。ここと提携してアプリ内に広告を設置することで、広告収入を得ることができます。少しでも下心があるなら必須です。

    三井住友VISAカード
    デベロッパー登録やその他経費をクレジット払いにしておけば支払いの履歴も残りますし、一々振り込む手間が省けます。三井住友VISAカードならcitiバンクを支払い口座に指定できますし、なにかと便利です。

中級者向けおすすめサービス

iPhoneアプリをリリースしても、ダウンロードされなければ意味がありません。さらに集客力・発信力を向上させましょう。

    お名前.com
    格安で独自ドメインを取得することができます。自社サイト・個人サイトを作成する際にご利用ください。

    さくらのレンタルサーバ
    レンタルサーバーです。webサイト用もしくはアプリのデーターサーバー用にどうぞ。

    ロリポップ!レンタルサーバー
    レンタルサーバーです。webサイト用もしくはアプリのデーターサーバー用にどうぞ。

その他のおすすめサービス

私のオススメのサービスです。
参考なれば幸いです。


1位   リクナビNEXT

iPhoneアプリエンジニアは求人市場で需要があります。一般企業はアプリを広告として使うケースがありますから。私自身もリクナビNEXTを利用しています。


2位   随時更新していきます。

QRコード

QR

全記事表示リンク

全ての記事を表示する

カテゴリ

最新記事

月別アーカイブ

プロフィール

CasualAppTeam

Author:CasualAppTeam
初めまして。
iPhoneアプリ開発についてブログを綴っていきます。
xcodeやobjective-c,storyboardなどについて詳しく書いていきます。

最新コメント

最新トラックバック

RSSリンクの表示

自分のための外部リンク