問題タブ [uiviewcontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa-touch - MFMailComposeViewControllerを横向きに表示する
私のアプリはランドスケープベースです。横向きでMFMailComposeViewControllerを使用したいのですが、向きについて通知するものが見つかりません。横向きの場合、MFMailComposeViewControllerは、横向きの場合、左側から入ってくるメール作成ウィンドウの上部のみを表示します。基本的に、横向きの画面の半分をカバーします。メール作成ウィンドウを縦向きではなく横向きに表示する方法はありますか?
---編集---メール作成をロードしたいビューは次のように導出されます。
上記から、メール作成の親ビューは3番目に読み込まれます。info.plistで、私はこれを行います:
objective-c - 論理エラーですか、それともプログラムがパーツをスキップしていますか?
参考までに、私はobjective-Cでプログラミングしていますが、誰でも助けてくれるかもしれません。私は過去 2 時間ここに座って何が問題なのかを突き止めようとしており、この単純で小さなコーディングの問題をデバッグするために知っていることはすべて実行しました。以下のコードをチェックしてください。説明します。アプリケーションでは、MainScreenViewController から始まります。私のアプリケーションは、ユーザーに 2 つの選択肢を与えます...「マスター」ボタンまたは「ワーカー」ボタン (基本的なクライアント/サーバー モデル) を選択します。ユーザーの選択に基づいて、アプリケーションは別のビュー (MasterViewController または WorkerViewController) をロードすることになっています。ここで、アプリケーションを実行すると、印刷コマンドに従って「マスター」ボタンを選択した場合、私のプログラムでは、「masterButtonPressed - Stage 1」と「」が出力されます。間違った?私が言ったように、「マスター」ボタンを押してもビューは変わりません。ご協力いただきありがとうございます!
MainScreenViewController.h
MainScreenViewController.m
ErwinAppDelegate.h
ErwinAppDelegate.m
iphone - UIView のサイズを決定する場所
UIViewController
概要:ビューを初期化するときに、UIView インスタンスのサイズをどのように知る必要がありますか?
UIView 専用の初期化メソッドはinitWithFrame:(CGRect)frame
メソッドです。これにより、新しく作成された UIView のフレームが設定されます。このメソッドはUIViewController's
、そのビュー コントローラーのビューが要求された場合、loadView メソッドから呼び出すことができます。UIViewController
サブクラス化とビュー サイズに関する状態のドキュメント:
ビュー階層のビューを作成するときは、常にビューの自動サイズ変更プロパティを設定する必要があります。ビュー コントローラーが画面に表示されると、通常、そのルート ビューは使用可能なスペースに合わせてサイズ変更されます。これは、ウィンドウの現在の向きや、ステータス バーなどの他のインターフェイス要素の存在によって異なります。
したがって、UIViewController
インスタンスはこれらのプロパティを設定する必要があります。これまでのところ、UIViewController
そのビューがどれほど大きいか、またはこれから大きくなるかを知る必要はありません。
a のビューUIViewController
が要求され、view プロパティが nil の場合、View Controller の loadView メソッドが呼び出されます。を初期化する必要があるため、問題が発生しましたUIView
が、View Controller はまだビューのサイズを認識していません。そのビューをどのくらいの大きさで初期化する必要がありますか? ビューのサイズはコードのどこで決定しますか?
ビューをゼロ四角形 ( CGRectZero
)で初期化できます。
そして、呼び出し元に次のようにビュー フレームを設定させます。
これはビュー コントローラ (viewController.view) からビューを要求し、そのビューを loadView メソッドでロードします。この loadView メソッドは、ビューをCGRectZero
. 次に、呼び出し元がそのフレームを設定します (view.frame = ...)
UIView
問題は、ビューのフレーム プロパティが 2 回設定されていることです。カスタムが setFrame メソッドで高度なレイアウトを行っている場合 (たとえば、サブビューの配置とサイズ変更)、さらに二重の作業が発生する可能性があります。UIViewController
ivar に保存する CGRect を呼び出し元に要求する専用の初期化メソッドを作成することで、これを防ぐことができます。loadView メソッドが呼び出された時点で、この ivar を使用してビューを作成します。
ここに行く良い方法は何ですか?ビューのフレームを 2 回設定する (で初期化してCGRectZero
から設定する) かUIViewController
、CGRect で新しいイニシャライザ メソッドを指定する (したがって、フレーム プロパティを指定する) か。それとも、何かが足りないのでしょうか。他の可能性はありますか?
uiview - UIViewでサブビューを削除する方法
私のアプリケーションには2つのビューがあり、それらの名前はLoginviewとsampleviewです。
私が追加したこのLoginview[self.view addsubview:Loginview];
ログインアクション後。self.viewを次のように変更しました[self.view addsubview:sampleview];
しかし、その時もloginviewが表示されています。
これを避けるために。でサブビューを削除する方法はself.view
?
iphone - メイン ビューの上でサブビューを反転する
メイン ビューの約 3/4 のサイズのメイン ビューの上にサブビューを作成しようとしています。ボタンが押されると、サブビューは別のサブビューにフリップする必要があります。私は近くにいますが、2つの問題があります。
最初の問題は、最初にフリップ ボタンを押すと、2 番目のサブビューが全画面表示で開始され、フリップ アニメーションがレンダリングされるのではなく、指定されたフレーム サイズに縮小されることです。
2 番目のビューがレンダリングされたら、最初のビューと 2 番目のビューを切り替えることができます (テスト目的で、元に戻すための 2 番目のボタンを追加しました)。
私の 2 番目の問題は、ビューが反転すると、反転の前に新しいビューが読み込まれ、その後反転が発生することです。それが正しく機能する前に、反転ビューを作成しましたが、画面全体がビューである場合のみです。
メインのView Controllerにあるコードは次のとおりです。
2 つのボタンのコードは次のとおりです。
私の問題のいずれかに関するヘルプは大歓迎です!
cocoa-touch - 別のビューから戻った後、テーブルビューからデータをリロードします
アプリケーションに問題があります。どんな助けでも大歓迎です。基本的には、ビューAからビューBに移動してから、ビューBから戻ります。
ビューAでは、データベースから動的データがロードされ、テーブルビューに表示されます。このページには、ナビゲーションバーではなく、編集ボタンもあります。ユーザーが編集ボタンをタブで移動すると、ビューBに移動し、ピックビューが表示されます。また、ユーザーはここで変更を加えることができます。それが完了すると、ユーザーはナビゲーションバーの[戻る]ボタンをタブで移動し、変更をNSUserDefaultsに保存し、ビューBをポップしてビューAに戻ります。
ビューAに戻ると、UIUserDefaultsから新しいデータを取得する必要があります。NSLogを使用してコンソールに印刷しましたが、正しいデータが表示されます。また、viewWillAppear:メソッドを呼び出して、テーブルビューの新しいデータを取得する必要がありますが、そうではありませんでした。tableView:numberOfRowsInSection:メソッドも呼び出されませんでした。このメソッド内にNSLogステートメントを配置しましたが、コンソールに出力されませんでした。
その結果、ビューAにはまだ古いデータがあります。ビューAで新しいデータを取得する唯一の方法は、アプリケーションを停止して開始することです。
ビューAとビューBはどちらも、UIViewController
とUITableViewDelegate
のサブクラスですUITableViewDataSource
。
これがビューAの私のコードです:
ここで、「theTableView」はUITableView変数です。そして、「reloadData」、「setNeedsDisplay」、「setNeedsLayout」の3つのケースすべてを試しましたが、機能しなかったようです。
ビューBで、ナビゲーションバーの戻るボタンに対応するメソッドは次のとおりです。
私は正しいやり方でやっていますか?それとも私が見逃したものはありますか?
iphone - iPhoneのUIViewController間でオブジェクトを共有するにはどうすればよいですか?
私のアプリケーションはタブバーアプリケーションで、タブごとに個別のViewControllerがあります。
最初のViewController(A)に、保存されているすべてのアプリケーションデータ(NSUserDefaultsは無視してください)を含むオブジェクトがあります。このオブジェクトには、2番目のView Controller(B)のボタンを押したときにアクセスする必要があります。どうすればこれを最善の方法で達成できますか?