0

私のアプリケーションには、UITextFieldとUIButtonを持つViewController(ViewController 1)があります。ViewController 2には、UINavigationBarがあります。ViewController 1テキストフィールドに何かを入力し、ボタンを押してから、ViewController2のUINavigationBarテキストをViewController1のUITextFieldとして設定できるようにしたいのですが、もちろん、Xcodeでは別のViewControllerからのオブジェクトを宣言できません。より多くの仕事をしています。これどうやってするの?

4

3 に答える 3

0

これはテストしていませんが、次のように機能するはずです。

navBar.topItem.title = @"title";

また

self.navigationItem.title=@"title";

@ "title"は、ナビゲーションコントローラスタックでVC2をプッシュする前に設定された文字列変数(VC2内)に置き換えられます。

乾杯

于 2012-07-11T21:21:05.127 に答える
0

あなたの質問はあまり明確ではありませんが、私が理解できることから、あなたはViewController'sに秒のタイトルUIButtonを設定したいですか?NavigationBarViewController

私にはかなり奇妙な振る舞いのように思えますが、これがあなたを助けるかもしれないと私が思うものです。

最初ViewControllerにプロトコル/デリゲート機能を作成して、UIButtonが押されたときに次を呼び出すことができるようにします。

-(IBAction) changeTitle:(id) sender {    
[self.delegate buttonPressed:txtView.text];
}

そして、それであなたUITextFieldのテキストをあなたAppDelegate、またはこれら2つを作成した人ViewControllersに送信すると、そこであなたはそのテキストを受け取り、それをあなたの2番目に送信しますViewController

-(void)buttonPressed:(NSString *)text{
secondViewController.title = text;
} 

おそらく、ViewControllerその行が機能しない場合は、2番目のタイトルを変更するメソッドを実装する必要があります。これがあなたにとって有用であり、私があなたの質問を理解したことを願っています。

于 2012-07-11T22:22:23.863 に答える
0

Oscarの回答に似ていますが、これが複数のView Controllerにアクセスを許可する文字列である場合は、アプリデリゲートにプロパティを設定できます。

In AppDelegate
@property (NSString *) myString;

In View Controller setting
myAppDelegate *appDelegate =  (myAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.myString = @"meh"; 

In View Controller getting
myAppDelegate *appDelegate=  (myAppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *mehStr = appDelegate.myString;

それは完全なコードではありませんが、あなたはその考えを理解します。船外に出て、物をappdelegateに送り返すかどうかはわかりませんが、1つの文字列では問題なく動作するはずです。

于 2012-07-11T22:37:15.743 に答える