- 締切済み
Objective-C デリゲートについて
助けてください!とても、とても急いでいるのですが、自分で解決できません… xcodeでiPhoneアプリを作っています。 Twitter機能の部分で (1)タイムラインを表示するクラス(親)に置いたボタンを押す ↓ (2)ツイート入力画面(子)に遷移、TextViewにツイート本文を入力して送信ボタンを押す ↓ (3)タイムライン(親)に戻り、ツイートを送信 という流れなのですが、(2)で送信ボタンを押してもツイートが投稿されないのです。 半年ほど前に自分で作ったアプリを、コピーしてソースを整理しながら手直ししているアプリなのですが、前のはできて今のはできないのです。 この流れの部分では書き換えたところは無いと思いますし、見直してもみつかりません。 (子)では送信ボタンを押したとき、IBActionのメソッドで [self.delegate buttonDidFinish status:textView.text] [self.navigationController popViewControllerAnimated:YES] を実行して(親)のbuttonDidFinishメソッドにとばしています。 このIBActionのメソッド自体は動いています。(NSLogで確認) 前のアプリでは、(親)のbuttonDidFinishの名前を変えたり、コメントアウトすると実行時にエラーになったのですが、今回のアプリでは何も無いので、このbuttonDidFinishメソッドに入れていないようなのです。 buttonDidFinishだけが無視されている状態です。 どこを探れば良いのかすらもうお手上げです… なにかアドバイスをよろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Lchan0211b
- ベストアンサー率61% (573/930)
[self.delegate buttonDidFinish status:textView.text] で、buttonDidFinishを呼び出したはずなのに buttonDidFinishが実行されないということであれば、 self.delegateがnilのままになっていないか確認しましたか? または、buttonDidFinishを呼び出してもらうはずのオブジェクトとは 別のオブジェクトがdelegateに設定されていたりしませんか? まずは [self.delegate buttonDidFinish status:textView.text] を実行する直前にブレークポイントを仕掛け、その時点で self.delegateに何が設定されているか確認してみてください。