Appデリゲートから初期ビューコントローラーに文字列を渡す必要があります。誰かがそれを行うための最良の方法をリストしてくれませんか?また、NSユーザーのデフォルトを使用して保存と取得を試みましたが、うまくいきません.
22617 次
4 に答える
30
インターフェース:
@interface MyAppDelegate : NSObject {
NSString *myString;
}
@property (nonatomic, retain) NSString *myString;
...
@end
App Delegateの.mファイルには、次のように記述します。
@implementation MyAppDelegate
@synthesize myString;
myString = some string;
@end
次に、viewcontroller.mファイルで以下をフェッチできます。
MyAppDelegate *appDelegate = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
someString = appDelegate.myString; //..to read
appDelegate.myString = some NSString; //..to write
于 2013-02-24T08:34:13.083 に答える
20
Swift の場合は次のとおりです。
ビューコントローラー
let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate
さらに、View Controller 間で渡したいオブジェクトがある場合 (たとえば、共有したい CloudKit データがあった場合)、これをApp Delegateに追加します。
/* Function for any view controller to grab the instantiated CloudDataObject */
func getCloudData() ->CloudData{
return cloudDataObject
}
次に、View Controllerに戻ります
var model : CloudData = self.appDelegate.getCloudData()
于 2015-02-10T17:49:11.743 に答える
14
アプリのデリゲートから次のようにルート ビュー コントローラーにアクセスできます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyViewController* mainController = (MyViewController*) self.window.rootViewController;
[mainController passData:@"hello"];
return YES;
}
于 2013-02-24T08:53:21.183 に答える