在我的应用程序中,我有一个ViewController(ViewController 1),它有一个UITextField和一个UIButton。在我的ViewController 2中,我有一个UINavigationBar。我希望能够在ViewController 1文本框中输入内容,按下按钮,然后将ViewController 2中的UINavigationBar文本设置为ViewController 1中的UITextField。但是当然,Xcode不会让您从另一个ViewController中声明对象,而无需做更多的工作。我怎样才能做到这一点?声明来自不同ViewController的对象
回答
你的问题重刑是不是很清楚,但从我能理解你想要一个ViewController
的UIButton
设置NavigationBar
的第二个标题ViewController
?
似乎对我来说很奇怪的行为,但这是我认为可能会帮助你。
关于你的第ViewController
创建一个协议/委托功能,以便当按下你UIButton
您可以拨打:
-(IBAction) changeTitle:(id) sender {
[self.delegate buttonPressed:txtView.text];
}
有了这样的发送您的UITextField
的文字到您AppDelegate
,或谁创建这两个ViewControllers
,然后您将收到该文本并将其发送给您的第二个ViewController
。
-(void)buttonPressed:(NSString *)text{
secondViewController.title = text;
}
也许你将不得不实施改变标题在你的第二个ViewController
如果该行不工作的方法。希望这对你有用,我理解你的问题。
没有测试过这一点,但下面应该为你工作:
navBar.topItem.title = @"title";
OR
[email protected]"title";
@ “称号” 将与字符串变量(在VC2)所设定更换在推动VC2在导航控制器堆栈之前...
欢呼声
等等,那么这将如何工作?我明白你在说什么,但我会在哪里宣布所有这一切?我只需要更多的细节。 – 2012-07-11 21:43:09
设置文本是我不关心的,我只需要从ViewController 2声明UINavigationBar,这样当我在ViewController 1中编写代码时,如果有意义的话,我可以使用ViewController 2中的naviBar。 – 2012-07-11 21:50:35
与Oscar的答案类似,但如果这是一个字符串,您希望多个视图控制器有权访问,那么您可以在您的应用程序委托中设置一个属性。
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. 在ViewController头部声明对象
- 2. 我可以在不声明对象的情况下使用不同类中的声明对象吗?
- 3. C++未声明的标识符 - 对象来自.net dll类
- 4. MFC - 从不同对话框访问全局声明的对象
- 5. 声明对象C#
- 6. C#对象声明
- 7. Javascript对象声明
- 8. 对象声明中的对象解构?
- 9. 显式声明的对象
- 10. Javascript中的对象声明
- 11. 的Java:对象声明
- 12. 类对象的声明confucion
- 13. 了解JavaScript对象(不同类型的声明)
- 14. 声明使用对象VS对象
- 15. Java对象不是声明类
- 16. 使用Typescript类而不声明对象
- 17. 使用未声明的类型“的ViewController”
- 18. 对象在VC++声明
- 19. 声明对象使用:
- 20. 声明动态对象表
- 21. 对象声明数组
- 22. 对象不是声明类,同时部署EAR应用
- 23. 不同的函数声明
- 24. Swift:使用未声明的类型'ViewController'
- 25. 如何将相同的声明应用于许多不同的对象?
- 26. 的viewController对象BAD_ACCESS?
- 27. c#:控制对来自不同线程的对象的访问
- 28. 来自相同PyQuery对象的不同输出
- 29. 来自非故事板ViewController的ViewController
- 30. 如何声明对象,而不是创建新对象?
下面是一个协议的例子。 '@protocol myDelegate - (void)buttonPressed:(NSString *)text; @ end' [基础协议](http://mobiledevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html) –
ohr
2012-07-11 22:25:33