我开始看一下新Swift的Xcode 6,我尝试了一些演示项目和教程.现在我被困在:
实例化然后viewController从特定的故事板中呈现
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboardName" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"myVCID"];
[self presentViewController:vc animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
如何在Swift上实现这一目标?
如何以编程方式设置InitialViewController故事板?我想根据某些条件打开我的故事板到不同的视图,这些条件可能因发布而异.
考虑以下场景:我有一个基于故事板的应用程序.我将一个ViewController对象添加到storyboard中,将此ViewController的类文件添加到项目中,并在IB身份检查器中指定新类的名称.现在我将如何从AppDelegate以编程方式引用此ViewController?我已经使用相关类创建了一个变量并将其转换为IBOutlet属性,但我没有看到任何方法能够在代码中引用新的ViewController - 任何尝试按住Ctrl键拖动连接都不起作用.
即在AppDelegate中我可以像这样到达基本的ViewController
(MyViewController*) self.window.rootViewController
Run Code Online (Sandbox Code Playgroud)
但故事板中包含的任何其他ViewController怎么样?
我正在尝试创建推送通知,根据从推送获得的信息确定要打开的视图.
我已经设法从推送中获取信息,但我现在正在努力让视图打开
查看其他堆栈溢出问题,我目前有以下内容:
App Delegate完成加载:
//Extract the notification data
if let notificationPayload = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
// Get which page to open
let viewload = notificationPayload["view"] as? NSString
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
//Load correct view
if viewload == "circles" {
var viewController = self.window?.rootViewController?.storyboard?.instantiateViewControllerWithIdentifier("Circles") as! UIViewController
self.window?.rootViewController = viewController
}
}
Run Code Online (Sandbox Code Playgroud)
目前这在var ViewController = self ...行上失败了.
我有同样的问题,如本问题所述:
我在哪里可以将我的应用程序使用的窗口从UIWindow更改为我自己的子类"MyWindow"和storyboard?
我的问题是如何在我的app委托中实现一个'window'getter方法,返回'MyWindow'子类?或者也许有其他方法可以将我的子类分配到我的应用程序的主窗口?
我已经开始使用Swift和故事板在Xcode上开发iOS应用程序了.我有一个要求,点击按钮,我将在屏幕上显示用户的Facebook个人资料信息(仅当用户使用Facebook登录时),但如果他没有登录,它将自动进入登录屏幕并成功登录再次显示配置文件视图.
我怎样才能做到这一点?
我使用有关为iOS开发创建通用二进制框架以分发库的方法.我还想在框架中添加文件,并将它们加载到主程序中(实际上是SSL证书).这与StackOverflow问题有关,主要区别在于我想要包含除XIB之外的其他内容.
如果我们读取与链接帖子相关的线程,似乎是不可能的.但是,提到了以下博客文章 ; 我们可以读到:
"静态框架不是标准框架的完全替代 - 访问框架资源的标准方法,例如
+[NSBundle bundleForClass:]不会返回预期的bundle.通过查询dyld来确定与路径对应的库路径 - 在在静态链接的情况下,这将返回静态库链接到的二进制文件的路径.另外,NSBundle/CFBundle将检查返回地址的前一个堆栈,并使用该返回地址来确定调用代码的dyld二进制路径.这些限制,一些解决方法是可能的,例如-[NSBundle privateFrameworkPath]用于定位嵌入式框架的路径."
我是iOS开发的初学者,我很难使用这样的机制.privateFrameworksPath确实使用返回路径,但我不知道接下来要做什么来找到我想要加载的文件.
它是这样的:
NSBundle * bundle = [NSBundle bundleForClass:[self class]];
NSString * path = [bundle privateFrameworksPath]; // Works, return something like .../Frameworks
NSString * file = [path stringByAppendingPathComponent:@"MyFramework.framework/Versions/A/my-cert.der"];
NSData * trustedCertData = [NSData dataWithContentsOfFile:file]; // Returns nil
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
if userSignedInGlobal == "success"{
if let mainTabController = storyboard.instantiateViewController(withIdentifier: "MainTabController") as? MainTabController{
mainTabController.present(mainTabController, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“应用程序试图在其自身上呈现模态视图控制器。呈现控制器是 .'
我需要在使用 firebase 对应用程序进行身份验证后导航到一个页面,以便在验证身份验证后使用上面的代码。我该如何解决这个问题,一个解释如何到达那里的参考链接或代码就足够了。
我在堆栈溢出时看到了很长的Objective-C答案,但没有快速的答案.
如何从视图控制器以swift方式以编程方式更改初始视图控制器?
我认为它会是这样的:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
storyboard.setInitialViewController(identifier: ViewController())
Run Code Online (Sandbox Code Playgroud)
但不,这没有任何作用.第一行很好,但第二行的功能不存在.
我正在使用故事板,xcode 4.6.1.我已经创建了一个应用程序,但现在我想回去并在开头添加一个新的视图控制器.如何将此视图控制器指定为第一个在运行时加载的视图控制器?
目前,我已经在我的 AppDelegate 中实现了这两个方法
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool
Run Code Online (Sandbox Code Playgroud)
和
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool
Run Code Online (Sandbox Code Playgroud)
如果用户使用 Spotlight 的搜索结果打开我的应用程序,第一个将被调用,如果我的应用程序从 Apple Maps(因为它是一个路由应用程序)打开,则第二个将被调用。
我的问题是,UIViewController从 AppDELEGATE转到特定位置的最佳方法是什么(无论用户处于何种视图都独立)?
我问的原因是因为目前我正试图根据用户所在的位置手动导航到它。例如,它们可能位于以UIViewController模态显示的a中(然后需要关闭),或者它们可能位于 a 的深处,UINavigationController然后应用程序需要在其中调用popToRootViewController.
这样做的话,代码会变得杂乱无章,而且似乎无法正常工作。这样做似乎也不正确,因为它非常脆弱。
uitabbarcontroller uiviewcontroller ios appdelegate nsuseractivity
ios ×10
swift ×6
objective-c ×5
storyboard ×3
appdelegate ×2
iphone ×2
xcode ×2
cocoa-touch ×1
uikit ×1
uistoryboard ×1
uiwindow ×1