Stack Overflowでこれについて同様の質問をいくつか読みましたが、満足のいく答えはありませんでした。
私が達成しようとしているのは、設定画面の「Facebookサインインボタン」です。
静的セルを使用してこれを実現したいと思います。しかし、Xcodeを使用して「アクション」をUITableViewCellに接続できないことにすぐに気付きました。
次に、UIButtonを内部に持つカスタムUITableViewCellを使用して同じ結果を達成しようとしましたが、実際のUITableViewCellとまったく同じように見せるために、多くの余分なスタイリングの問題が発生しました。
これで、次のソリューションを使用して、UITableViewCellをボタンのように動作させることができました。
「ログインボタン」UITableViewCellの識別子を「loginButton」に変更しました。そして、TableViewControllerに次のコードを追加しました。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ([[selectedCell reuseIdentifier] isEqualToString:@"loginButton"]) {
NSLog(@"Clicked");
// Execute function to run code for Login button
}
}
IBActionを実行する代わりに(Xcodeのボタンのようにリンクできればそうだったでしょう)、関数を実行します。
これは期待どおりに機能しています。しかし、私がこの質問を作成した理由は、これが正しい方法であるかどうかを知りたいということです。これでいい?これは悪いですか?なぜこれは大丈夫なのか悪いのか?より良い解決策はありますか?ありがとう!